力扣T26与T27的区别

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,即为新数组长度。

 

posted @ 2024-03-06 20:38  翻斗花园小美Q  阅读(29)  评论(0)    收藏  举报