leetcode刷題記錄1 只出現(xiàn)一次的數(shù)字
給定一個(gè)非空整數(shù)數(shù)組,除了某個(gè)元素只出現(xiàn)一次以外,其余每個(gè)元素均出現(xiàn)兩次。找出那個(gè)只出現(xiàn)了一次的元素。
說(shuō)明:
你的算法應(yīng)該具有線性時(shí)間復(fù)雜度。 你可以不使用額外空間來(lái)實(shí)現(xiàn)嗎?
示例 1:
輸入: [2,2,1]
輸出: 1
示例?2:
輸入: [4,1,2,1,2]
輸出: 4
一個(gè)很巧的辦法 對(duì)數(shù)組中的所有元素進(jìn)行異或運(yùn)算
2^2^1=0^1=1
4^1^2^1^2=4^1^1^2^2=4^0^0=4
由此可見(jiàn) 異或運(yùn)算的結(jié)果就是我們所需的結(jié)果
```
class Solution {
? ? public int singleNumber(int[] nums) {
? ? ? ? int res=nums[0];
? ? ? ? for(int i=1;i<nums.length;i++)
? ? ? ? {
? ? ? ? ? ? res^=nums[i];
? ? ? ? }
? ? ? ? return res;
? ? }
}
```