一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
由于其他数字都出现两次,所以这里可以直接从最开始进行一个判断,判断当前位置和下一个位置的数值是否相等,如果相等则证明这一对可以不再看,i=i+2。如果说当前数值不等于下一个数值,则此时证明当前值只有一个,所以写入数组中,这种写法只有到了数组最后的时候i无法取到最后的一个数,所以最后进行i是否为最后一个数进行判断,如果相等则证明取到了最后,第二个数值为最后一个,此时就得出了两个数。

//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
import java.util.*;
public class Solution {
    public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
        if(array.length<2){
            return;
        }
        Arrays.sort(array);
        int i=0,j = 0;
        int[] num = new int[2];
        while(i<array.length-1){
            if(array[i] == array[i+1]){
                i = i+2;
            }else{
                num[j++] = array[i];
                i++;
            }
        }
        if(i == array.length-1){
            num[1] = array[i];
        }
            num1[0] = num[0];
            num2[0] = num[1];
    }
}