D136 26. Remove Duplicates from Sorted Array
题目链接
26. Remove Duplicates from Sorted Array
题目分析
给定一个已经排好序的数组,其中的整数会出现重复。需要在不增加内存的情况下移除重复的元素。即不要新建数组。
注意,最后需要返回的是不重复的元素个数。
注意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;
}
}
若觉得本文章对你有用,欢迎用爱发电资助。
网友评论