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
相关推荐
恋恋西风13 分钟前
CT dicom 去除床板 去除床位,检查床去除
python·vtk·dicom·去床板
Doker 多克28 分钟前
Python Django系列—入门实例
python·django
geovindu42 分钟前
python: SQLAlchemy (ORM) Simple example using mysql in Ubuntu 24.04
python·mysql·ubuntu
nuclear201144 分钟前
Python 将PPT幻灯片和形状转换为多种图片格式(JPG, PNG, BMP, SVG, TIFF)
python·ppt转图片·ppt转png·ppt转jpg·ppt转svg·ppt转tiff·ppt转bmp
没有晚不了安1 小时前
1.13作业
开发语言·python
刀客1231 小时前
python小项目编程-中级(1、图像处理)
开发语言·图像处理·python
信阳农夫1 小时前
python 3.6.8支持的Django版本是多少?
python·django·sqlite
冷琴19962 小时前
基于Python+Vue开发的反诈视频宣传管理系统源代码
开发语言·vue.js·python
带娃的IT创业者2 小时前
《Python实战进阶》专栏 No2: Flask 中间件与请求钩子的应用
python·中间件·flask
坚持就完事了2 小时前
Python之numpy
开发语言·python·numpy