元素要么出现一次,要么出现多次,首先Arrays.sort()进行排序,之后直接遍历就行,假如当前元素等于下标加一的元素,i=i+3;假如不等于,直接返回当前元素。当指针i到了最后一位,这一位一定是结果(这里容易写错)
class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums); if(nums.length==1) return nums[0]; int length=nums.length; for(int i=0;i<length;) { if(nums[i]==nums[i+1]) { i=i+3; } else { return nums[i]; } if(i==length-1) { return nums[i]; } } return -1000; } }