题目
结果
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Solution { public int removeDuplicates(int[] nums) { int length = nums.length; Map<Integer, Boolean> map = new HashMap<>(); for (int i = 0; i < length; i++) { if (!map.containsKey(nums[i])) { map.put(nums[i], false); } else if (!map.get(nums[i])) { map.put(nums[i], true); } else if (map.get(nums[i])) { removeNum(nums, i); length--; i--; } } return length; }
private void removeNum(int[] nums, int index) { if (nums.length >= index + 1) { System.arraycopy(nums, index + 1, nums, index, nums.length - 1 - index); } } }
|
一边遍历数组一边修改,可能会产生意想不到的问题,尽量还是别这样做的好。