【力扣Hot100】136. 只出现一次的数字
程序员文章站
2022-04-16 23:50:02
...
题目:只出现一次的数字
分析
异或^
运算的特点就是:与0异或等于本身
;本身异或等于0
;
而异或运算又满足交换律,因此可以得出,对数组中所有元素进行异或,凡是出现偶数对的元素均消失;结果便是剩下的出现奇数对的元素之间的异或结果。
而本题恰恰说明,只有一个元素是出现奇数次的,其他都是出现偶数次,因此异或的结果就是这个元素。
思路
题目中说了给的数组为非空,那么也就不需要进行特判了对吧,真好!
直接遍历,对所有元素进行累计异或
运算;
class Solution {
public int singleNumber(int[] nums) {
int singleNum = 0;
for(int num : nums){
singleNum ^= num;
}
return singleNum;
}
}
上一篇: 【leetcode初级算法JS实现】6.只出现一次的数字
下一篇: shell脚本(3)