Single Number II

Dscription:

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?

Code:

 1    int singleNumber(vector<int>& nums) {
 2      int result = 0;
 3      int n = nums.size();
 4      int length = 8*sizeof(int);
 5      for (int i = 0; i < length; ++i)
 6      {
 7          int temp = 0;
 8          for (int j = 0; j < n; ++j)
 9          {
10              if (nums[j] & (1<<i))
11                 temp++;
12          }
13          temp %= 3;
14          result = result | (temp<<i);
15      }
16      return result;
17     }

 

posted @ 2015-06-21 17:14  Rosanne  阅读(180)  评论(0编辑  收藏  举报