- 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
来源:力扣(LeetCode)
以下代码主要使用一个额外数组来标志该位置是否被遍历,优化题解使用异或运算实现剔除相同数字直接遍历一次得到结果
public static int singleNumber1(int[] nums) {
boolean []a=new boolean[nums.length];
int i;
for(i=0;i<nums.length;i++) {
if(a[i]==true) continue;
int j=nums.length-1;
while(j>i) {
if(nums[j]==nums[i]) {
a[j]=a[i]=true;
break;
}
j--;
if(i==j&&a[i]==false)return nums[i];
}
if(i==j&&a[i]==false)return nums[i];
}
return 0;
}