
Remove Duplicates from Sorted Array I
虽然这也是一道双指针的题,但是比较简单,写这个博客的意义在于,有时候坚持自己的代码,容易bug-free,参考九章的答案虽然代码比较简练,但是反而坑坑洼的。
自己写的
1 2 3 4 5 6 7 8 9 10 11
|
public int (int[] nums) { if (nums == null || nums.length == 0) return 0; int index = 0; for (int i = 0; i < nums.length; ++i) { while (i + 1 < nums.length && nums[i] == nums[i + 1]) ++i; nums[index++] = nums[i]; } return index; }
|
九章的参考答案
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public int (int[] A) { if (A == null || A.length == 0) { return 0; }
int size = 0; for (int i = 0; i < A.length; i++) { if (A[i] != A[size]) { A[++size] = A[i]; } } return size + 1; }
|
Remove Duplicates from Sorted Array II
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public int (int[] nums) { if (nums == null || nums.length == 0) return 0; int index = 0; for (int i = 0; i < nums.length; ++i) { if (i + 1 < nums.length && nums[i] == nums[i + 1]) { nums[index++] = nums[i++]; nums[index++] = nums[i]; } else { nums[index++] = nums[i]; } while (i + 1 < nums.length && nums[i] == nums[i + 1]) { ++i; } } return index; }
|
近期评论