落单的数—LintCode
2017-10-12 17:00
344 查看
描述:
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例:
给出 [1,2,2,1,3,4,3],返回 4
思路:
从头开始遍历数组,遍历到没有被标记的数时,就遍历后面的数组找到与这个数相同的标记上。最后没有被标记的数就是答案。
也可以将所有的数按位异或,最后的值即为答案。
ac代码1:
ac代码2:
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例:
给出 [1,2,2,1,3,4,3],返回 4
思路:
从头开始遍历数组,遍历到没有被标记的数时,就遍历后面的数组找到与这个数相同的标记上。最后没有被标记的数就是答案。
也可以将所有的数按位异或,最后的值即为答案。
ac代码1:
class Solution { public: /* * @param A: An integer array * @return: An integer */ int singleNumber(vector<int> &A) { // write your code here if(!A.size()) return 0; bool vis[100005],falg; int i,j; memset(vis,sizeof(vis),false); for(i=0;i<A.size();i++) { if(!vis[i]) { falg=0; for(j=i+1;j<A.size();j++) { if(A[j]==A[i]) { falg=1; vis[j]=1; //cout<<A[i]; break; } } if(!falg) return A[i]; } } } };
ac代码2:
class Solution { public: /* * @param A: An integer array * @return: An integer */ int singleNumber(vector<int> &A) { // write your code here int k=0; for(int i=0;i<A.size();i++) { k^=A[i]; } return k; } };
相关文章推荐
- lintcode-简单-落单的数
- LintCode-落单的数 II
- 落单的数 IV -LintCode
- lintcode 容易题:Single Number 落单的数
- Lintcode—落单的数III
- LintCode_082_落单的数
- 落单的数IV --- lintcode 824
- lintcode-落单的数 III
- [LintCode]82.落单的数
- Lintcode落单的数
- LintCode_082_落单的数
- lintcode-落单的数
- lintcode 落单的数 II
- 【LintCode 简单】82. 落单的数
- lintcode 落单的数(位操作)
- LintCode_82_落单的数
- LintCode 落单的数
- LintCode 落单的数 II
- lintcode-83-落单的数 II
- lintcode--l落单的数