关于leetcode:Leetcode-PHP题解D136-26-Remove-Duplicates-from-Sorted-Array

27次阅读

共计 529 个字符,预计需要花费 2 分钟才能阅读完成。

D136 26. Remove Duplicates from Sorted Array

题目链接

26. Remove Duplicates from Sorted Array

题目剖析

给定一个曾经排好序的数组,其中的整数会呈现反复。须要在不减少内存的状况下移除反复的元素。即不要新建数组。

留神,最初须要返回的是不反复的元素个数。

留神 2,参数是以援用型传过来的。

解题思路

一一遍历元素,先间接把以后元素从数组中移除。

当以后元素和前一个元素不雷同时,做 3 件事件:

  1. 在原数组中插入这个不反复的元素。
  2. 记录以后数字,即最初呈现的数字。
  3. 把下次要插入数字的下标标记为以后下标 +1

最终代码

<?php
class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function removeDuplicates(&$nums) {
        $index = 0;
        $prev = NULL;
        foreach($nums as $key => $num){unset($nums[$key]);
            if($num !== $prev){$nums[$index] = $num;
                $prev = $num;
                $index = $key + 1;
            }
        }
        return $index;
    }
}

若感觉本文章对你有用,欢送用爱发电赞助。

正文完
 0