1. 概述
给定一个增序排列数组 nums ,在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。在使用 O(1) 额外空间的条件下完成。
示例: 输入:nums = [1,1,1,2,2,3] 输出:5 nums = [1,1,2,2,3]
2. 解题
<?phpclass Solution {/*** @param Integer[] $nums* @return Integer*/public function removeDuplicates(&$nums) {if (!$nums) {return 0;}$sum = 1;$key = $nums[0];$count = 1;for ($i = 1; $i < count($nums); $i++) {if ($nums[$i] == $key) {$sum++;$count++;if ($count > 2) {unset($nums[$i]);}} else {$sum++;$key = $nums[$i];$count = 1;}}return $sum;}}$nums = [0,0,1,1,1,1,2,3,3];$cls = new Solution();$r = $cls->removeDuplicates($nums);echo implode(',', $nums) . "\n";echo $r;
