題目:乙個陣列裡,除了三個數是唯一出現的,其餘的都出現偶數個,找出這三個數中的任乙個。比如陣列元素為【1, 2,4,5,6,4,2】,只有1,5,6這三個數字是唯一出現的,我們只需要輸出1,5,6中的乙個就行。
下面是我的解法,找到三個數字乙個數的第乙個bit位(這裡是從右到左算)和其它二個不一樣的數就行
如1,5,6的二進位制分別為0001,0101,0110。因為6的的第一位為0,而其他的為1,用我的程式第乙個輸出的就是6了。程式如下:
[cpp]view plain
copy
print?
#include
//得到第i位的二進位制
#define ison(n, i) ((n) & 1 <
// author: 397090770
// e-mail: [email protected]
void findthesinglenumber(int *arr, int size)else
} if(counta & 0x1)else
}elseelse
} }
} int main();
findthesinglenumber(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}
#include //得到第i位的二進位制
#define ison(n, i) ((n) & 1 << (i))
// author: 397090770
// e-mail: [email protected]
void findthesinglenumber(int *arr, int size)else
} if(counta & 0x1)else
}elseelse
} } }
int main();
findthesinglenumber(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}
時間複雜度為o(n)。輸出為 6。(如果要全部輸出不同的數,方法和上面的一樣)
哪位大牛還有別的解法嗎?
另附:第一大題為求最大子串行。上面那題為第二大題。最後一道題:
小公尺公司2013校園招聘筆試題(研發) 答案
分類 名企筆試題 2013 06 26 11 41 255人閱讀收藏 舉報小公尺 筆試 一,填空題 1.兩個人乙個速度為a,乙個速度為b,相向而行,在距離為s的時候,a放出鴿子,速度為c,鴿子飛到b後,會返回a,遇到a後再返回b。在這期間鴿子飛行的路程 2.he 的平方 she。h,e,s 各代表什...
網易2013校園招聘筆試題
第一部分 必做 計算機基礎類 25分 所有選擇題都是多項選擇 1.2分 假設進棧次序是e1,e2,e3,e4,那可能的出棧次序是 a e2,e4,e3,e1b e2,e3,e4,e1c e3,e2,e4,e1 d e1,e2,e4,e3 2.2分 表示式x a b c d e的字尾表示形式可以是 a...
谷歌2013校園招聘筆試題
1.4 小組賽,每個小組有5支隊伍,互相之間打單迴圈賽,勝一場3分,平一場1分,輸一場不得分,小組前三名出線。平分抽籤。問乙個隊最少拿幾分就有理論上的出線希望 a.1 b.2 c.3 d.4 分析 設有a b c d e 5支球隊,假設abc晉級了。如果球隊c積1分可以出現,由於是單迴圈賽,說明他4...