Lintcode:82落单的数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Cold__Winter/article/details/87307864

题目:

给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

样例:

给出 [1,2,2,1,3,4,3],返回 4

代码:

// An highlighted block
class Solution {
public:
    /**
     * @param A: An integer array
     * @return: An integer
     */
    int myfind(vector<int> &A,int x){
        int count =0;
        for(int i=0;i<A.size();i++){
            if(A[i]==x){
                count++;
                if(count==2){
                    return i;
                }    
            }
        }
        return -1;
    }
   
    int singleNumber(vector<int> &A) {
        // write your code here
        for (int i=0;i<A.size();i++){         
            int a = myfind(A,A[i]);
            if(a==-1){
                return A[i];
            }
        }
    }
};

刚开始想用查找后删除之后再找的方法,后来发现要考虑的东西比较多,所以就直接双重循环找只出现一次的数字了。还是只能暴力解决。。。难受

猜你喜欢

转载自blog.csdn.net/Cold__Winter/article/details/87307864