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[] nums) {
int[] arr = new int[32];
int res = 0;
for (int i = 0; i < 32; i++) {
for (int j = 0; j < nums.length; j++) {
if (((nums[j]>>i) & 1) != 0) {
arr[i] = (arr[i]+1)%3;
}
}
res |= arr[i]<<i;
}
return res;
}
}
本文介绍了一种算法,用于在给定整数数组中找到仅出现一次的元素,所有其他元素都出现三次。算法运行时间复杂度为线性,并且不使用额外内存。
407

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



