您的位置:首页 > 其它

LeetCode—137 Single Number II

2015-11-05 21:30 197 查看
思路:循环读32次,每次读数组的时候跟1000000000000000000(31个0,Integer.MIN_VALUE)取与,不为0则记录下来,读一遍之后%3看是否为0,不为0则表示该位有值。

public class Solution {
public int singleNumber(int[] nums) {
int min=Integer.MIN_VALUE;
int ans=0;
for (int i = 0; i < 32; i++) {
int sum=0;
for (int j = 0; j < nums.length; j++) {
if ((nums[j]&min)!=0) {
sum++;
}
nums[j]<<=1;
}
ans+=sum%3;
if (i!=31) {
ans<<=1;
}
}
return ans;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: