LintCode 落单的数
2017-09-23 17:15
106 查看
1.描述
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
给出 [1,2,2,1,3,4,3],返回 4
2.分析
数组中除了落单数之外都是两个相同的数成对出现,因此排序后相同的数都是挨着的,
从第一个数开始当找到一个数后面的数和他不同时该数即为落单数。
3.代码
class Solution {
public:
/*
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> &A) {
// write your code here
sort(A.begin(),A.end());
int n=A.size();
for(int i=0;i<n;)
{
if(A[i]==A[i+1])
i=i+2;
else
return A[i];
}
}
};
4.总结
对数组排序后相同的数已经挨在一起,注意当判断当前数后跟着的数相同时i+2找到下一个数。
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
给出 [1,2,2,1,3,4,3],返回 4
2.分析
数组中除了落单数之外都是两个相同的数成对出现,因此排序后相同的数都是挨着的,
从第一个数开始当找到一个数后面的数和他不同时该数即为落单数。
3.代码
class Solution {
public:
/*
* @param A: An integer array
* @return: An integer
*/
int singleNumber(vector<int> &A) {
// write your code here
sort(A.begin(),A.end());
int n=A.size();
for(int i=0;i<n;)
{
if(A[i]==A[i+1])
i=i+2;
else
return A[i];
}
}
};
4.总结
对数组排序后相同的数已经挨在一起,注意当判断当前数后跟着的数相同时i+2找到下一个数。
相关文章推荐
- [LintCode] 落单的数II Single Number II
- lintcode,落单的数 II
- lintcode-84-落单的数 III
- [Lintcode] #82 落单的数
- LintCode 第82题 落单的数 【贪心算法】
- lintcode-落单的数III-84
- Lintcode 落单的数 II
- LintCode 82. 落单的数
- LintCode 83. 落单的数II
- LintCode-落单的数 III
- 【LintCode】 Single Number 落单的数
- lintcode->落单的数
- Lintcode落单的数 删除排序数组中的重复数字 II
- lintcode 82.落单的数
- lintcode 中等题:Singleton number II 落单的数 II
- Lintcode 82.落单的数
- [LintCode] 落单的数 III Single Number III
- lintcode -- 落单的数III
- LintCode 落单的数 ⅡⅢ
- 落单的数—LintCode