Leetcode刷题Python26. 删除有序数组中的重复项
Posted Better Bench
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python26. 删除有序数组中的重复项相关的知识,希望对你有一定的参考价值。
1 题目
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
2 解析
使用快慢指针。慢指针来指向有序不重复序列的最后一个位置,fast来遍历整个集合。一旦慢指针的元素与快指针的不一致时,将快指针的元素插入到满指针的后一个位置,慢指针往后移动一个位置。
3 Python 实现
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if not nums:
return 0
n = len(nums)
fast = slow = 1
while fast < n:
if nums[fast] != nums[fast - 1]:
nums[slow] = nums[fast]
slow += 1
fast += 1
return slow
以上是关于Leetcode刷题Python26. 删除有序数组中的重复项的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—26. 删除有序数组中的重复项(数组)—day76
Leetcode刷题100天—26. 删除有序数组中的重复项(数组)—day76