法1:快慢指针
Python
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
slow, fast = 0, 1
n = len(nums)
while fast < n:
if nums[slow] != nums[fast]:
slow += 1
nums[slow] = nums[fast]
fast += 1
return slow + 1
Java
基础解法,必须掌握!!!
class Solution {
public int removeDuplicates(int[] nums) {
if (nums.length < 2) {
return nums.length;
}
int slow = 0, fast = 1;
while (fast < nums.length) {
if (nums[fast] > nums[slow]) {
nums[++slow] = nums[fast++];
} else {
fast++;
}
}
return slow + 1;
}
}