LeetCode主题整理(1)滤重问题

本文探讨了LeetCode中涉及滤重问题的几种算法,包括如何在已排序的数组和链表中高效去除重复元素。通过比较常规方法与优化策略,如避免逐个元素移动和利用排序特性,可以将时间复杂度降低到O(N),提高解决方案的效率。
摘要由CSDN通过智能技术生成

下面都是滤重题目。


(25)Remove duplicate

给定一个数,给定一个数组,删除数组中的这个数,修改原数组使得新数组为去掉了这个数之后的剩下元素构成的数组并返回新数组的长度。通过交换来避免数组删除时的逐个移动,从而降低时间复杂度。

(26)Remove duplicate from sorted Array

排序数组滤重。考虑两种做法。

第1种常规,每次都同原数组中删除一个数组,然后需要逐个移动已删除元素后面的元素。时间复杂度为O(N²)

第2种聪明,不断地用不重复的元素生成新的数组。一边扫描原数组,一边判断是否是不重复的元素,如果否就丢弃,如果是,则就地原数组的空间上生成,时间复杂度为O(N)


(81)Remove duplicate from sorted Array2

排序链表滤重,对于重复元素,保留两个。思路和上面的(26)非常相似。


(83)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值