python奇數字丟棄 位運算有什麼奇技淫巧?

2021-10-17 04:26:31 字數 1483 閱讀 9261

作為一名不會sql的商科學生,在畢業即失業的惡勢力下

低頭在leetcode刷資料庫……

期間有幸遇到幾次位運算,留下了深刻的印象,並被它的巧妙所折服。

第一題:620.有趣的電影

作為該電影院的資訊部主管,您需要編寫乙個 sql查詢,找出所有影片描述為非 boring (不無聊) 的並且 id 為奇數 的影片,結果請按等級 rating 排列。

例如,下表cinema:

| id | movie | description | rating |

| 1 | war | great 3d | 8.9 |

| 2 | science | fiction | 8.5 |

| 3 | irish | boring | 6.2 |

| 4 | ice song | fantacy | 8.6 |

| 5 | house card| interesting| 9.1 |

對於上面的例子,則正確的輸出是為:

| id | movie | description | rating |

| 5 | house card| interesting| 9.1 |

| 1 | war | great 3d | 8.9 |

涉世未深的我,

一邊吐槽著為啥要找奇數的**

一邊用mod(id,2)=1做出了答案

於是接下來我就有了第一次和位運算接觸的經歷:

id & 1

這個簡潔的表達一下子就吸引了我,看了別人的解釋我才直到原來這是位運算,二進位制中,偶數最後一位是0,奇數是1,按位運算的話,0&1就是0,1&1就是1

至此,我對這種神秘又精簡的運算方法留下了深刻的印象,

於是乎馬上我又遇到了它,而這一次它真正的震撼了我哈哈哈哈~

第二題 626.換座位

小美是一所中學的資訊科技老師,她有一張 seat 座位表,平時用來儲存學生名字和與他們相對應的座位 id。其中縱列的 id 是連續遞增的,小美想改變相鄰倆學生的座位。

你能不能幫她寫乙個 sql query 來輸出小美想要的結果呢?

示例:| id | student |

| 1 | abbot |

| 2 | doris |

| 3 | emerson |

| 4 | green |

| 5 | jeames |

假如資料輸入的是上表,則輸出結果如下:

| id | student |

| 1 | doris |

| 2 | abbot |

| 3 | green |

| 4 | emerson |

| 5 | jeames |

注意:如果學生人數是奇數,則不需要改變最後乙個同學的座位。

select rank() over(order by (id-1)^1) as id,student from seat大佬用與1 異或,將奇數偶數互換,又用-1對最後一行為奇數行的情況進行處理。

直接秒殺!!!

奇數字丟棄C 實現

題目描述 對於乙個由0 n的所有數按公升序組成的序列,我們要進行一些篩選,每次我們取當前所有數字中從小到大的第奇數字個的數,並將其丟棄。重複這一過程直到最後剩下乙個數。請求出最後剩下的數字。解題思想 分為兩種情況 情況1 n 0時 直接輸出0 情況2 n 0時 step1 每一輪遍歷,找出需要丟棄的...

美團2016招聘筆試 奇數字丟棄

對於乙個由0 n的所有數按公升序組成的序列,我們要進行一些篩選,每次我們取當前所有數字中從小到大的第奇數字個的數,並將其丟棄。重複這一過程直到最後剩下乙個數。請求出最後剩下的數字。輸入描述 每組資料一行乙個數字,為題目中的n n小於等於1000 輸出描述 一行輸出最後剩下的數字。輸入例子 500輸出...

美團2016招聘筆試 奇數字丟棄

對於乙個由0 n的所有數按公升序組成的序列,我們要進行一些篩選,每次我們取當前所有數字中從小到大的第奇數字個的數,並將其丟棄。重複這一過程直到最後剩下乙個數。請求出最後剩下的數字。輸入描述 每組資料一行乙個數字,為題目中的n n小於等於1000 輸出描述 一行輸出最後剩下的數字。輸入例子 輸出例子 ...