Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
public class Solution {
public int singleNumber(int[] A) {
int []count=new int[32];
int res=0;
for(int i=0;i<32;i++){
for(int j=0;j<A.length;j++){
if(((A[j] >> i) & 1)!=0){
count[i]++;
}
}
res|=((count[i]%3)<<i);
}
return res;
}
}思路:看了discuss才对的,二进制表示上某位上所有为1的数字的个数。
本文介绍了一种算法,用于在给定整数数组中找到仅出现一次的元素,所有其他元素都出现三次。算法运行时间复杂度为线性,并且不使用额外内存。
412

被折叠的 条评论
为什么被折叠?



