LeetCode-探索-初级算法-数组-5. 只出现一次的数字(个人做题记录,不是习题讲解)
-
语言:java
-
思路:先排序,然后两个两个比较,要是不一样就取每组第一个;要是实在没有,那就是最后一个
-
代码(4ms):
class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums); for(int i =0;i<nums.length-1;){ if(nums[i]!=nums[i+1]) return nums[i]; i+=2; } return nums[nums.length-1]; } }
-
参考代码(1ms):利用了异或两次等于本身的特性
class Solution { public int singleNumber(int[] nums) { int n = 0; for(int i = 0;i<nums.length;++i){ n ^= nums[i]; } return n; } }