目录

从排序数组中删除重复项

题目链接

从排序数组中删除重复项

解题思路

迭代数组,判断下一个元素是否与当前元素相同,如果相同则删除当前元素。

代码

PHP 版本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function removeDuplicates(&$nums) {
        $size = sizeof($nums);// 防止数组越界
        foreach($nums as $key => $item){
            if($key + 1 <= $size) {
                if($nums[$key] === $nums[$key + 1]){
                    unset($nums[$key]);
                }
            }
        }
        return count($nums);
    }
}

语言坑点:

  1. PHP 使用 for 循环时 unset 掉元素不重置下标,数组下标保持原状,所以有可能漏掉判断元素。
  2. PHP 判断是否相等时会将 NULL 与 0 相等,必须连类型一起判断。