[LeetCode] 面试题56 - I. 数组中数字出现的次数
2021-02-03 22:15
标签:ber while 面试 int image 获得 col ima mic 牛 直接想不到 [LeetCode] 面试题56 - I. 数组中数字出现的次数 标签:ber while 面试 int image 获得 col ima mic 原文地址:https://www.cnblogs.com/doyi111/p/12799336.htmlclass Solution {
public int[] singleNumbers(int[] nums) {
//用于将所有的数异或起来
int k = 0;
for(int num: nums) {
k ^= num;
}
//获得k中最低位的1
int mask = 1;
//mask = k & (-k) 这种方法也可以得到mask,具体原因百度 哈哈哈哈哈
while((k & mask) == 0) {
mask ;
}
int a = 0;
int b = 0;
for(int num: nums) {
if((num & mask) == 0) {
a ^= num;
} else {
b ^= num;
}
}
return new int[]{a, b};
}
}
文章标题:[LeetCode] 面试题56 - I. 数组中数字出现的次数
文章链接:http://soscw.com/index.php/essay/50608.html