题目:26. 删除有序数组中的重复项
思路:双指针,左指针left维护合法数组,时间复杂度0(n)。
C++版本:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int left=1;
for(int i=1;i<nums.size();i++){
if(nums[i-1]==nums[i]) continue;
nums[left]=nums[i];
left++;
}
return left;
}
};
JAVA版本:
class Solution {
public int removeDuplicates(int[] nums) {
int left=1;
for(int i=1;i<nums.length;i++){
if(nums[i-1]==nums[i]) continue;
nums[left]=nums[i];
left++;
}
return left;
}
}
Go版本:
func removeDuplicates(nums []int) int {
left:=1
for i:=1;i<len(nums);i++ {
if nums[i]==nums[i-1] {
continue
}
nums[left]=nums[i]
left++
}
return left
}