LeetCode:Single Number
来源:互联网 发布:linux系统软件下载 编辑:程序博客网 时间:2024/04/30 07:34
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
// Source : https://oj.leetcode.com/problems/single-number/// Author : Chao Zeng// Date : 2014-12-17class Solution {public: int singleNumber(int A[],int n){ int ans = A[0]; for (int i = 1; i < n; i++) { ans = ans ^ A[i]; } return ans; }};
此类题型总结:
第一种情况:数组中每个数字都出现了两次,除了一个数外,找出这个数;解:对数组中的所有数进行异或操作(异或操作对每个数字(表示为二进制数)相同位异或为0,不同位异或为1),结果就是所求的数字。第二种情况:数组中每个数字都出现了两次,除了两个数外(也就是说有2个不同的数只出现一次),找出这两个数;解:对数组中的所有数进行异或操作,得到一个结果result。然后找出result(二进制表示形式)中最低位为1的那个位(不一定找最低位,随便找一位为1就可以,此处为了方便就选择了最低位)。然后将数组中的数按照这位上是0还是1分为2组,然后分别对这2组进行异或操作,2组异或后的结果即为所求的两个数。第三种情况:数组中每个数字都出现了三次,除了一个数外,求出这个数;解:将数组中的每个数都表示成二进制形式(假设有32位,申请一个array[32]存储每位上的数),然后把所有数对应该位上的数字加起来,最后对每位数上对3取余,最终就是所求数的二进制表示形式,然后转化成十进制。
开始每天刷LeetCode!!!
0 0
- leetcode Single Number & Single Number ||
- [LeetCode] Single Number
- Leetcode: Single Number
- Leetcode Single Number
- Single Number - leetcode
- Single Number II - leetcode
- Leetcode: Single Number II
- 【LeetCode】Single Number
- [LeetCode] Single Number II
- LeetCode: Single Number II
- LeetCode: Single Number
- leetcode -- Single Number II
- [leetcode]Single Number II
- [LeetCode] Single Number II
- [LeetCode]Single Number
- Leetcode Single Number
- 【leetcode】Single Number
- 【leetcode】Single Number II
- hadoop shell 详解
- android 二次开发 莫名其妙问题一(文件夹创建方式)
- FFPLAY的原理(一)
- Kaggle入门——使用scikit-learn解决DigitRecognition问题
- 关于C#窗体登录网站获取网页Cookie
- LeetCode:Single Number
- Android内存问题的几种解决方案(一)
- Intent 匹配规则
- Androidの发送Email
- mysql性能优化-慢查询分析、优化索引和配置
- 对于Zookeeper的理解
- Tomcat项目部署之去掉端口、项目名及域名配置
- 码农之路:我早该做好的5件事
- IOS and JAVA 的 RSA 加密解密