题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
解题思路
运用的是两层for循环实现,对每个元素进行遍历,求每个元素统计后面是否有相同的元素,没有相同的元素返回,这个元素,代码设置了标志量数组用于统计是否前面值相同的元素是否被访问,如被访问,直接跳过,防止输出数组中的有两个数字的值。
代码块
//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
public class Solution {
public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
boolean[] flag=new boolean[array.length];
System.out.println(flag[0]);
int count1=0;
for (int i = 0; i < array.length; i++) {
int count=0;
for(int j=i+1;j<array.length;j++){
if(array[i]==array[j] && flag[j]==false){
count++;
flag[j]=true;
}
}
if(count==0 && count1==0 && flag[i]==false){
num1[0]=array[i];
count1++;
}else if(count==0 && count1==1 && flag[i]==false) {
num2[0]=array[i];
}
}
}
}