删除数组中的重复元素,并返回去重的数组之Python解法
题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
解法:采用双指针,遍历数组,发现两个值相等,移动指针,发现两个值不相等,互换位置保证指针走过的地方都是不重复的数
def handler(li): """双指针方法""" if not li or len(li) == 0: return 0 i = 0 res = [li[0]] for j in range(1, len(li)): if li[i] != li[j]: i += 1 li[i] = li[j] res.append(li[i]) return i+1,res def handler_01(li): """元素弹出法""" if not li or len(li) == 0: return 0 i = 0 j = 1 while j <= len(li) -1: if li[i] == li[j]: li.pop(j) else: i += 1 j += 1 return len(li) if __name__ == '__main__': print('删除重复后列表长度及列表内容', handler([1,2,3,3,4,5])) print('删除重复后列表长度', handler_01([1,2,3,3,4,5]))
结果展示:
时刻记着自己要成为什么样的人!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)