(LeetCode 面试经典 150 题 ) 26. 删除有序数组中的重复项 (双指针)
题目: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:=1for i:=1;i<len(nums);i++ {if nums[i]==nums[i-1] {continue}nums[left]=nums[i]left++}return left
}