137.Single Number II
来源:互联网 发布:人工智能 在线 编辑:程序博客网 时间:2024/05/16 17:24
问题描述
Given an array of integers, every element appears three times except for one, which appears exactly once. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
解题思路
该问题给了我们一组数,其中只有一个数只出现了一次,其他的都出现了三次,要我们把只出现了一次的数找出来。我们可以这样思考,将数组中的每个数字用二进制表示,并且统计每一位上所有元素的和,除了只出现了一次的,其他的数都出现了三次,那么如果不包括我们要求的数,其他的数加起来在每一位上都是3的倍数,随意我们只要用每一位上的数字以3取余,就是我们要求的数在该位的值。最后在将二进制转为十进制即可。
代码展示
#include <iostream>#include <stdlib.h>#include <vector>using namespace std;class Solution {public: int singleNumber(vector<int>& nums) { int count[32]={0}; int result=0; for(int i=0;i<32;i++){ for(int j=0;j<nums.size();j++){ count[i]+=((nums[j]>>i)&1); count[i]=count[i]%3; } result|=(count[i]<<i); } return result; }};int main(){ int n; vector<int> nums; cout<<"请输入向量长度:"; cin>>n; int a; for(int i = 0;i<n;i++){ cin>>a; nums.push_back(a); } Solution solution; int result=solution.singleNumber(nums); cout<<result<<endl;}
运行结果
阅读全文
0 0
- 137.Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- Spring框架:跨域问题之使用@CrossOrigin注解解决失败的原因总结
- python学习笔记--event事件
- Java----枚举 enum
- python中的类专有的方法
- 内存操作经典问题分析
- 137.Single Number II
- 小组讨论汇总
- 12.2的日记
- python异步IO的发展历程
- 面向对象-转型
- 程序员必知之浮点数运算原理详解
- CentOS7修改网卡名称
- 好好学习,天天向上1
- 数组去重