删除排序数组中的重复项
解题思路
使用双指针,i指针遍历整个数组,每相邻两个进行判断,如果不相等,就使用k指针重新赋值前面的数。
代码
c++解法
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int k=0;//保存不重复数字的个数
for(int i=0;i<nums.size();i++)
if(i==0||nums[i-1]!=nums[i]) nums[k++]=nums[i];
return k;
}
};
java解法
class Solution {
public int removeDuplicates(int[] nums) {
int k=0;
for(int i=0;i<nums.length;i++)//java中数组长度为length
if(i==0||nums[i-1]!=nums[i]) nums[k++]=nums[i];
return k;//返回数组中不重复的个数
}
}
python解法
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
k=0
for i in range(len(nums)):
if i==0 or nums[i-1]!=nums[i]:
nums[k]=nums[i]
k+=1
return k