Single Number II - leetcode
来源:互联网 发布:欧洲工商管理学院 知乎 编辑:程序博客网 时间:2024/06/11 18:37
Single Number II
AC Rate: 11/62
My SubmissionsGiven 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?
思路是:利用一个33位的数组保存n个数的每个二进制位1的个数,然后对其模3 , 这样最后剩下的就是出现一次的那个数了,注意第32位保存的正负数的个数,同样也要模3,最后决定结果的正负,同时要考虑溢出的情况。
代码如下
class Solution {public: int singleNumber(int A[], int n) { // Note: The Solution object is instantiated only once and is reused by each test case. if ( n < 4) return A[0]; short tmp[33] = {0}; for (int i = 0; i < n; ++i) { unsigned int t = 0; if (A[i] < 0) { t = -A[i]; tmp[32] += 1; tmp[32] %= 3; } else { t = A[i]; } int j = 0; while (t) { tmp[j] += t & 0x01; // cout << (t & 0x01) << " "; tmp[j] %= 3; t >>= 1; ++j; } } unsigned int key = 0; for (int i = 0; i < 32; ++i) { if (tmp[i]) key += (1 << i); } return tmp[32] == 0 ? key : -key; }};
- Single Number II - leetcode
- Leetcode: Single Number II
- [LeetCode] Single Number II
- LeetCode: Single Number II
- leetcode -- Single Number II
- [leetcode]Single Number II
- [LeetCode] Single Number II
- 【leetcode】Single Number II
- LeetCode:Single Number II
- Leetcode: Single Number II
- leetcode :Single Number II
- Leetcode Single Number II
- [LeetCode]Single Number II
- leetcode: Single Number (II)
- leetcode Single Number II
- leetcode Single Number II
- [LeetCode],Single Number II
- LeetCode | Single Number II
- 突发奇想
- CERC2012 j - Conservation 有条件的维护拓扑序列
- nandflash的操作方法
- mysql用户管理
- JavaIO之输入输出流链(一)
- Single Number II - leetcode
- 《C++ Primer (5th Edition)》笔记-Part IV. Advanced Topics
- 多维数组的动态分配
- 剑指offer-33:把数组排成最小的数
- 怎么在你的网站应用中使用PHP和jQuery建立日历
- c++内存布局经典文章
- Java高级特性之系统可用编码(一)
- OpenStack 动态迁移流程分析
- TCP/IP网络层