初階:有2n+1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求o(n)的時間複雜度,o(1)的空間複雜度。
高階:如果有2n+2個數,其中有2個數落單,該怎麼辦?
初階:將2n+1個數異或起來,相同的數會抵消,異或的答案就是要找的數。
高階:假設兩個不同的數是a和b,並且a!=b,將2n+2個數異或起來就會得到c=a xor b,並且c不等於0。因此在c的二進位制位中找到乙個為1的位,可推斷在這位上a和b分別為0和1,因此將2n+2個數分為該位位0的組和該位為1的組,兩組中各自會包含2n』+1個數和2n』』+1個數,用初階的演算法即可解決。
該問題的考點,在於異或符號的運用。異或運算是計算機系的基礎知識。上過課的同學一般來會答得上第一問。
第二問會不會被問到看面試官心情。一般來說,對於乙個問題的擴充套件問題,解題的思路是如何將它通過一定的變換轉換為初級問題。因此就要去想怎麼分為兩組,兩組各包含2x+1個數就問題得解。會初階問題以後,基本上會想到把所有數異或起來,得到a xor b。再根據題目中的題目a與b不同,意味著該值不為0,從而想到根據該值的二進位制位為1的位來將2n+2個數分為兩組。
面試題1 落單的數
有2n 1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求o n 的時間複雜度,o 1 的空間複雜度。高階問題 如果有2n 2個數,其中有2個數落單,該怎麼辦?答 初階 將2n 1個數異或起來,相同的數會抵消,異或的答案就是要找的數。高階 假設兩個不同的數是a和b,並且a b,將2n 2個數...
面試題1 落單的數
問題詳情 有2n 1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求o n 的時間複雜度,o 1 的空間複雜度。高階問題 如果有2n 2個數,其中有2個數落單,該怎麼辦?解答 答 初階 將2n 1個數異或起來,相同的數會抵消,異或的答案就是要找的數。高階 假設兩個不同的數是a和b,並且a b...
九章演算法 Amazon 面試題 數飛機
給出飛機的起飛和降落時間的列表,用序列 interval 表示.請計算出天上同時最多有多少架飛機?如果多架飛機降落和起飛在同一時刻,我們認為降落有優先權。lintcode 領扣 輸入 1,10 2,3 5,8 4,7 輸出 3 解釋 第一架飛機在1時刻起飛,10時刻降落.第二架飛機在2時刻起飛,3時...