给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现一次的元素
说明 : 你可以不使用额外空间来实现吗?
示例 1
输入 : {2,2,1}
输出 : 1
示例 2
输入 : {4,1,2,1,2}
输出 : 4
代码:
public class LingKou9 {
// 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现一次的元素
public static void main(String[] args){
System.out.println(m1(new int[]{3,3,2,1,1,5,5,5,}));
}
public static int m1(int m[]){
// a为标志量
int a = 0;
for (int i = 0; i < m.length; i++) {
//如果j=i+1的话,检测不到该数据之前的相同数据
// 可能会出错,让它在循环内跳过自身比较即可
for (int j = 0; j < m.length; j++) {
if(j!=i){
a=0;
if(m[i]==m[j]){
// 如果有数据相同,标志量+1表示不唯一
a++;
break;
}
}
}
// 标志量为0说明该数唯一
if(a==0)
return m[i];
}
return a;
}
}