leetcode--Single Number II

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 len = Integer.SIZE;
		int res = 0;
		int[] arr = new int[len];
		for(int i=0;i<nums.length;i++){
			for(int j=0;j<len;j++){
				arr[j] += (nums[i]>>j)&1;
				arr[j] %= 3;
			}
		}
		for(int i=0;i<len;i++){
			res += (arr[i]<<i);
		}
		return res;
    }
}

你可能感兴趣的:(leetcode--Single Number II)