T27
给你一个数组 nums
和一个值 val
,你需要 原地 移除所有数值等于 val
的元素,并返回移除后数组的新长度。
T26
你一个 非严格递增排列 的数组 nums
,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums
中唯一元素的个数。
27给了val值,而26题是让自己移除重复出现的元素,就是还得自己进行相邻元素比较的操作,不仅仅是原地移除
27题中是定义了一个fast指针,一个slow指针,比较fast指针与给定val的值是否一样,如果一样,那么fast++,如果不一样,那么就将fast的值保存在slow索引下
26题我们也是要定义两个指针,一个在前记作 p,一个在后记作 q,算法流程如下:
1.比较 p 和 q 位置的元素是否相等。
如果相等,q 后移 1 位
如果不相等,将 q 位置的元素复制到 p+1 位置上,p 后移一位,q 后移 1 位
重复上述过程,直到 q 等于数组长度。
2.返回 p + 1,即为新数组长度。
标签:val,元素,fast,力扣,数组,移除,指针,T27,T26 From: https://www.cnblogs.com/18191xq/p/18057520