數(shù)組中只出現(xiàn)一次的數(shù)字查找,其他數(shù)字出現(xiàn)兩次
先貼代碼:
解題思路:
????利用異或的原理進行解題,其相同的元素異或的結果為0,0和任何元素異或得到的結果都是任何元素。
對于找出一個元素的情況,直接將整個數(shù)組從頭到尾異或就可以得出答案。
對于需要找出兩個的情況,就需要以下步驟:
1、先求處整個數(shù)組異或的結果eor;
2、利用eor和其自身的補碼(eor取反+1)進行按位與,得出將數(shù)組拆分的標志(需要說明的是:該標志其實就是一個某個bit位為1,其他位為0的數(shù)值,只要對應bit位不為1,按位與的結果都將是0);
3、利用2中得出的標志位,在對數(shù)組進行遍歷的循環(huán)中,讓數(shù)組元素與標志位進行按位與,對結果為0的數(shù)組元素進行異或,異或最終的結果就是我所查找的只出現(xiàn)一次的元素之一。
4、將3中的到元素結果與1中的異或結果再進行異或,得到所查找的兩個數(shù)中的另一個
標簽: