美文网首页Leetcode题解-PHP版
Leetcode PHP题解--D136 26. Remove

Leetcode PHP题解--D136 26. Remove

作者: skys215 | 来源:发表于2022-05-03 14:06 被阅读0次

    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;
        }
    }
    

    若觉得本文章对你有用,欢迎用爱发电资助。

    相关文章

      网友评论

        本文标题:Leetcode PHP题解--D136 26. Remove

        本文链接:https://www.haomeiwen.com/subject/qbobyrtx.html