- 自己写的
public int removeDuplicates(int[] nums) {
int length = nums.length;
if (length == 0){
return 0;
}
int a = 1;
for (int i = 1; i < length; i++) {
if (nums[i] != nums[i-1]){
nums[a] = nums[i];
a++;
}
}
return a;
}
- LeetCode标答
class Solution {
public int removeDuplicates(int[] nums) {
int n = nums.length;
if (n == 0) {
return 0;
}
int fast = 1, slow = 1;
while (fast < n) {
if (nums[fast] != nums[fast - 1]) {
nums[slow] = nums[fast];
++slow;
}
++fast;
}
return slow;
}
}
还是标答的双指针意思更明确