1.3 面试经典150题 - 删除有序数组中的重复项

删除有序数组中的重复项

python 复制代码
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        # 处理边界数据
        if not nums: return 0
        if len(nums) == 1: return 1
        # 两个指针,一个记录当前有多少个不重复值的个数,一个记录最新遍历到的值
        count = 1
        tmp = nums[0]
        for i in range(1, len(nums)):
            if nums[i] == tmp:
                continue
            # 遍历到新的值时,更新指针
            tmp = nums[i]
            nums[count] = tmp
            count += 1
        # 切分原数据,并返回结果
        nums = nums[:count]
        return count

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

针对上面的解答,略加改造

python 复制代码
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        # 处理边界数据
        if not nums: return 0
        if len(nums) == 1: return 1
        # 三个指针,一个记录当前数组中应该有的值的个数,一个记录最新遍历到的值,一个记录重复次数
        count = 1
        tmp = nums[0]
        tmp_count = 1
        for i in range(1, len(nums)):
            if nums[i] == tmp:
                # 增加重复次数计数
                tmp_count += 1
                if tmp_count > 2:
                    # 超过2次时,不记录在数组了
                    continue
            else:
                # 更新值和重复次数
                tmp = nums[i]
                tmp_count = 1
            # 更新数组的值,并更新值个数的指针
            nums[count] = tmp
            count += 1
        # 切分原数据,并返回结果
        nums = nums[:count]
        return count
相关推荐
☼←安于亥时→❦1 小时前
PyTorch 梯度与微积分
人工智能·pytorch·python
程序员三藏2 小时前
2025最新的软件测试面试八股文(800+道题)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
Pocker_Spades_A2 小时前
Python快速入门专业版(二十三):for循环基础:遍历字符串、列表与range()函数(计数案例)
python
闲人编程2 小时前
图像去雾算法:从物理模型到深度学习实现
图像处理·人工智能·python·深度学习·算法·计算机视觉·去雾
Kyln.Wu3 小时前
【python实用小脚本-211】[硬件互联] 桌面壁纸×Python梦幻联动|用10行代码实现“开机盲盒”自动化改造实录(建议收藏)
开发语言·python·自动化
Ms_Big4 小时前
ppliteseg改rknn,部署在嵌入式板,加速模型
人工智能·python·深度学习
折翼的恶魔5 小时前
数据分析:合并
python·数据分析·pandas
百锦再5 小时前
在 CentOS 系统上实现定时执行 Python 邮件发送任务
java·linux·开发语言·人工智能·python·centos·pygame
I'm a winner5 小时前
第五章:Python 数据结构:列表、元组与字典(二)
数据结构·python
番薯大佬5 小时前
Python学习-day8 元组tuple
java·python·学习