只出现一次的数字[数组]
2018-10-07 本文已影响0人
正经龙
题目描述
题目解决思路
- 数组排序
- 两个为跳数判断是否相等
- 遇见不相等的就输出两个中的前面的一个
代码部分
class Solution {
public int singleNumber(int[] nums) {
Arrays.sort(nums);
for(int i=0;i<nums.length-1;i=i+2){
if(nums[i]!=nums[i+1])
return nums[i];
}
return nums[nums.length-1];
}
}
通过情况
执行用时:6ms
通过情况优质解答
class Solution {
public int singleNumber(int[] nums) {
for(int i=1;i<nums.length; i++){
nums[0] ^= nums[i];
}
return nums[0];
}
}
执行用时:1ms
优质思路
当一堆数组从第一位按位异或时,相同的数值总会相抵消变为0,无论先后
最后剩下的只能是单个的那个数值