80. 删除有序数组中的重复项 II

复制代码
80. 删除有序数组中的重复项 II
---
这边先做一道类似的题目
26.删除有序数组的重复项
相当于允许存在0个重复
目的计算不重复的个数,将不重复覆盖前方返回left+1
class Solution:
    def removeDuplicates(self,nums:List[int])->int:
        left = 0
        for right in range(len(nums)):
            if nums[right]==nums[left]:
                continue
            left+=1
            nums[left]=nums[right]
        return left+=1
---
而本体相当于允许存在2个重复
-<第一想法使用双指针,
代码:
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if len(nums)==0:
            return 
        left = 1#可以重复俩次,left从1开始,right从2开始
        for right in range(2,len(nums)):
            #比较前一和前一一个
            if nums[right]==nums[left] and nums[right]==nums[left-1]:
                continue
            left+=1
            nums[left]=nums[right]
        return left+1
---
衍生到第K个
class Solution:
    def removeDuplicates(self, nums: List[int], K: int) -> int:
        left = K-1
        for right in range(K,len(nums)):
            tag = True
            for i in range(K):
                tag*=nums[right]==nums[left-1]
            #nums[right]==nums[left-i] return Ture否则返回False
            #tag再和之前做×运算
            if tag:
                continue
            left+=1
            nums[left]==nums[right]
        return left
复制代码

 

 
posted @   是冰美式诶  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示