【异或】Leetcode 136. 只出现一次的数字
- 解法1 只需要全部异或一下,剩下的就是剩下的元素
---------------🎈🎈题目链接 136. 只出现一次的数字🎈🎈-------------------
解法1 只需要全部异或一下,剩下的就是剩下的元素
时间复杂度O(N)
空间复杂度O(1)
异或性质: 只需要全部异或一下,剩下的就是剩下的元素
1️⃣a⊕0= a
2️⃣a⊕b⊕a = b⊕a⊕a = b⊕(a⊕a) = b⊕0= b
class Solution {
public int singleNumber(int[] nums) {
// 根据异或的性质:
// a⊕0= a
// a⊕b⊕a = b⊕a⊕a = b⊕(a⊕a) = b⊕0= b
// 只需要全部异或一下,剩下的就是剩下的元素
int single = 0;
for(int num: nums){
single ^=num;
}
return single;
}
}