欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。...

程序员文章站 2022-03-08 15:33:04
...

// test02.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<vector>
using namespace std;


class Solution {
public:
    void FindNumsAppearOnce(vector<int> data, int* num1, int *num2) {
        int flag = 0;
        int a = 0;
        int num1flag = 0;

        for (int i = 0;i < data.size();i++)
        { 
            flag = 0;
            for (int j = 0;j < data.size();j++)//注意,此时的i不能等于j.注意j的下表,从1开始,而不是从i+1开始
            { 
                if (i == j) continue;
                if (data[i] == data[j])
                {
                //  cout << data[i] << endl;
                    flag = 1;
        //          break;
                }
            }
        
            
            if (flag == 0 && num1flag==0 )
            {
                *num1 = data[i];
        //      cout << data[i] << endl;
                num1flag=1;
                flag = 1;
            }
                
             if (flag == 0 && num1flag == 1)
            {
                *num2 = data[i];
            //  cout << data[i] << endl;
                
            }
        }

        //cout << "num1:" << *num1 << endl;
        //cout << "num2:" << *num2 << endl;
    }
};

int main()
{
    vector<int> vec = {1,2,3,4,5,6,7,7,6,5,1,2};
    Solution so;
    int i = 0, j = 0;

    int *num1=&i;
    int *num2=&j;
    so.FindNumsAppearOnce(vec, num1, num2);



    cout << endl;

return 0;
}