单纯利用数组解题
数组中只出现一次的数字
http://www.nowcoder.com/questionTerminal/e02fdb54d7524710a7d664d082bb7811
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
由于其他数字都出现两次,所以这里可以直接从最开始进行一个判断,判断当前位置和下一个位置的数值是否相等,如果相等则证明这一对可以不再看,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]; } }