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

题目描述

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

//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
public class Solution {
    public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
        
        int len = array.length;
        int temp = 0 ;
        for(int i=0;i<len;i++){
            for(int j=i+1;j<len;j++){
                if (array[j] < array[i])
                {
                    temp = array[i] ;
                    array[i] = array[j] ;
                    array[j] = temp ;
                }
            }
        }
        
        int flag = 0;
        if(array[0]!=array[1]){
            num1[0] = array[0];
            flag = 1;
        }  
        for(int i=1;i<len-1;i++){
            if(array[i]!=array[i-1] && array[i]!=array[i+1]){
                if(flag==0){
                    num1[0] = array[i];
                    flag = 1;
                }
                else{
                    num2[0] = array[i];
                }
            }
        }
        if(array[len-1]!=array[len-2]) num2[0] = array[len-1];
    }
}
原文地址:https://www.cnblogs.com/loyolh/p/12569297.html