删除有序数组中的重复项
Remove Duplicates from Sorted Array
题目描述:
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array
题目要求原址重排,删除重复元素,采用快慢指针,若元素不重复,nums[i]=nums[j],i++, 慢指针向前移动,否则快指针移动。
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:return 0
i,j=1,1
while j<len(nums):
if nums[j-1]!=nums[j]:
nums[i]=nums[j]
i+=1
j+=1
return (i)
class Solution {
public int removeDuplicates(int[] nums) {
int n = nums.length;
if(n==0)
return 0;
int i, j = 1;
while(j<n){
if(nums[j]!=nums[j-1]){
nums[i]=nums[j];
i+=1;
}
j+=1;
}
return i;
}
}