題目描述:/*乙個陣列除了某乙個數字只有乙個外,其餘的數字都是成對出現的*/
求出這個落單的數字
思路:使用異或的特性,可以抵消陣列中相同的數字,則剩下的哪個數字就是落單的數字
**示例:
/*乙個陣列除了某乙個數字只有乙個外,其餘的數字都是成對出現的*/
public
class
unique_number
; integer b =
find_unique_number
(a);
system.out.
println
(b);
}private
static integer find_unique_number
(integer[
] a)
return b;
}}
演算法很美 位運算 找出落單的那個數
上級目錄 演算法很美 乙個陣列裡除了某乙個數字之外,其他的數字都出現了兩次。請寫程式找出這個只出現一次的數字。異或的運算是a a 也就是說偶數個相同的元素異或,結果肯定是 a a a a,也就是說奇數個相同元素異或,結果是a本身。那麼根據上面的思路,我們可以設陣列 現兩次的元素為a組元素,一次的為b...
位運算的應用 找出落單的數
基本描述 乙個陣列裡面除了某乙個數字之外,其他的數字都出現了兩次。設計乙個演算法去找出這個只出現了一次的數字。要是沒學過位運算的話,估計又想著去暴力列舉了,不合適,資料量大了會很麻煩的,還是用位運算。因為陣列中只有乙個元素是不重複兩次的,用0去一次與陣列元素進行異或,出現兩次的數異或之後為0,只出現...
演算法 找出陣列中未出現的那個數字
今天看到一道演算法題。將1 100這100個數字放入int這樣的陣列中。現在要找出哪個數字是沒有出現在陣列中的。你會怎麼做?1 大部分人的做法 一瞬間就能想到的方法是遍歷 兩個迴圈套在一起,遍歷每乙個數字是否出現在陣列中。這個方法時間複雜度是o n 2 2 稍微思考一下,可以給出另乙個做法 先將陣列...