这道题需要注意的是:
1.需要返回值为最后有几个不重复的元素,也就是数字
2.用快慢指针的时候,不要忘记第一个数字肯定是要写上的。
<?php
class Solution
{
/**
* @param Integer[] $nums
* @return Integer
*
*
*/
function removeDuplicates(&$nums)
{
$count = count($nums);
if ($count <= 1) return $count;
$fast = 1; //用来遍历
$slow = 1;//用来存放最终返回的值,也是最后有几个不重复元素,第一个数肯定是会保留的
//遍历
while ($fast < $count) {
//每走一步,如果大于了左边的,就把这个数记录到 慢指针里,从第二个数开始比较,也就是下标为1开始比较。
if ($nums[$fast] > $nums[$slow-1]) {
$slow++;
$nums[$slow-1] = $nums[$fast];
}
$fast++;
}
return $slow ;
}
}
$temp = new Solution();
$temp1 = [0,0,1,1,1,2,2,3,3,4];
$res = $temp->removeDuplicates($temp1);
var_Dump($res);