https://leetcode-cn.com/problems/single-number/
我的解决方案:
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
boolean flag = false;
int len = nums.length;
for(int i=0;i<len;i++) {
flag = true;
for(int j=0;j<nums.length;j++) {
if(j!=i&&nums[i]==nums[j]) {
flag = false;
break;
}
}
if(flag) {
res = nums[i];
break;
}
}
return res;
}
}
参考了提交记录中耗时最短的代码,因为只有一个数字是单独的,所以我们可以利用异或运算的特性将所有元素进行异或,最后的结果就是只出现了一次的数字
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
int len = nums.length;
for(int i=0;i<len;i++) {
res = res ^ nums[i];
}
return res;
}
}