Lintcode 落单的数 II
来源:互联网 发布:13.3英寸笔记本知乎 编辑:程序博客网 时间:2024/03/29 02:21
给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。
样例
给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4
挑战
一次遍历,常数级的额外空间复杂度
分析:
三个数相同,则我们将每一个数的二进制中对应位的1的个数都加起来放在数组numberofOne中,然后对数组每一个元素%3则得到单个数的二进制表示,然后求出该二进制的十进制返回函数即可。
class Solution {public:/** * @param A : An integer array * @return : An integer */ int singleNumberII(vector<int> &A) { // write your code here if(A.empty()) return 0; int n=A.size(); int singleNumber=0; const int size=33; int numberofOne[size]={0}; for(int i=0;i<32;i++){ for(int j=0;j<n;j++){ if(A[j]>>i&1) numberofOne[i]++; } numberofOne[i]%=3; singleNumber+=numberofOne[i]*pow(2,i); } return singleNumber; }};
如有问题请留言。
如有帮助请顶一个,你们的支持是我最大的动力。
文章均可以转载,但请注明文章链接,谢谢。
0 0
- LintCode-落单的数 II
- lintcode-落单的数 II
- LintCode 落单的数 II
- lintcode,落单的数 II
- Lintcode 落单的数 II
- 落单的数 II-LintCode
- lintcode 落单的数 II
- lintcode-落单的数II-83
- Lintcode—落单的数II
- LintCode:M-落单的数II
- LintCode 83. 落单的数II
- lintcode ----落单的数
- LintCode 落单的数
- lintcode-落单的数
- lintcode,落单的数
- lintcode->落单的数
- LintCode :落单的数
- 落单的数-LintCode
- ubuntu系统下,搭建Android开发环境!!
- Spark性能优化指南
- 运维学习16
- 临时测试php又不想搭建vhost就用它把 php内置的web服务器
- Orange
- Lintcode 落单的数 II
- ProGuard代码混淆技术详解
- java_web 学习记录(六):文件上传和下载
- 编程之美-2.15 子数组之和的最大值(二维)
- Codeforces 505C Mr. Kitayuta, the Treasure Hunter DP+技巧优化
- 异或运算的经典算法题:找出数组中只出现一次的数字,其它数字都出现了两次
- 三层架构-循序渐进
- 查询、关键字
- 在线购物领域类图