剑指offer40 数组中只出现一次的数字

Posted stephen-jixing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer40 数组中只出现一次的数字相关的知识,希望对你有一定的参考价值。

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
 
注意赋值 和一些边界条件判断就可以
class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
     
        if(data.size()==2){
            num1=(int*)data[0]; *num2=*num2^data[1];
            return ;
        }
        vector<int> ans ;
        for(int i = 0 ; i<data.size() ; ++i){
            int now_val = data[i];
            for(int j = 0 ; j<data.size() ; ++j){
                if(i==data.size()-1 && j==data.size()-2 && data[j]!=now_val){
                    //针对最后一个元素  只用比较到倒数第二个元素就截止
                    ans.push_back(now_val); break ;
                }
                if(j!=i && data[j]==now_val)break;
                //找到最后一个数字了 都不重复
                if(j==data.size()-1 && data[j]!=now_val)ans.push_back(now_val);
            }
        }
        
        *num1=*num1^ans[0]; *num2=*num2^ans[1];
        return ;

    }
};

 

以上是关于剑指offer40 数组中只出现一次的数字的主要内容,如果未能解决你的问题,请参考以下文章

[剑指offer] 40. 数组中只出现一次的数字

《剑指offer》:[40]数组中只出现一次的数字

剑指Offer40数组中只出现一次的数字

剑指Offer40:数组中只出现一次的数字(Java)

《剑指Offer——数组中只出现一次的两个数字,数组中唯一只出现一次的数字》代码

剑指OFFER 数组中只出现一次的数字