【牛客网】single-number系列题解
来源:互联网 发布:盛世全集网络剧百度云 编辑:程序博客网 时间:2024/06/05 07:33
题目
给定一个整型数组,除一个元素仅出现一次之外,其余每个元素都出现两次(三次),试着找出这个元素。
分析
此类题目,若每个元素出现i次,如果将问题的视角放在数据位上来看的话,实际上就是除那个“single number”所在的bits外,(每个bit上出现数据的次数)%i==0。
代码
1.两次:
a.常规思路:
class Solution {public: int singleNumber(int A[], int n) { int res=0; for(int i=0;i<32;i++){ int count=0; for(int j=0;j<n;j++){ if((A[j]>>i)&1 == 1) count++; } res+=(count%2)<<i; } return res; }};
b.Bright Way:异或,a^a=0, 0^a=a(此方法适用于每个数出现偶数次的情况)
class Solution {public: int singleNumber(int A[], int n) { int num = 0; for(int i=0;i<n;i++){ num^=A[i]; } return num; }};
2.三次:
class Solution {public: int singleNumber(int A[], int n) { int res=0; for(int i=0;i<32;i++){ int count=0; for(int j=0;j<n;j++){ if((A[j]>>i)&1 == 1) count++; } res+=(count%3)<<i; } return res; }};
0 0
- 【牛客网】single-number系列题解
- LeetCode Single Number系列题解
- 【LeetCode题解】Single Number
- LeetCode题解:Single Number
- Single Number题解整理
- LeetCode题解:Single Number
- LeetCode题解:Single Number
- Single Number III 题解
- 【LeetCode题解】Single Number II
- [题解][LeetCode][Single Number II]
- LeetCode题解:Single Number II
- LeetCode题解:Single Number II
- LeetCode题解:Single Number III
- leetcode 136. Single Number 题解
- Leetcode题解 136. Single Number
- LeetCode 136 Single Number题解
- 【Leetcode题解】136.Single Number
- Lintcode82 Single Number solution题解
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)
- [摘录] Maven中的DependencyManagement和Dependencies
- 获取iOS 设备型号
- 哈希表实现原理
- C# 使用 MemoryStream 将数据写入内存
- 【牛客网】single-number系列题解
- http调试工具Charles Proxy用法详解
- 不带修改主席树模板
- Oracle策略的使用(dbms_rls.add_policy)
- 去除字符串中的首尾空格并将连续的空格变为一个
- HDU 1548 A strange lift(构造+最短路Dijkstra)
- jenkins可持续集成
- 新手程序员须知
- 统计学习方法---隐马尔可夫模型1