zoukankan      html  css  js  c++  java
  • 【剑指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 ;
    
        }
    };
  • 相关阅读:
    WinForm控件之【DateTimePicker】
    WinForm控件之【ComboBox】
    WinForm控件之【CheckedListBox】
    第五章学习小结
    第四章学习小结
    第三章学习小结
    第二章学习小结
    iOS
    iOS
    iOS
  • 原文地址:https://www.cnblogs.com/Stephen-Jixing/p/13130321.html
Copyright © 2011-2022 走看看