//排序数组中删除重复项,返回长度,保证数据在长度内的有序且不重复,超过的不考虑,且不能使用另外的存储空间
//使用快慢指针,通过数据对比实现长度以及数组的有序不重复
function removeDuplicates(&$nums) {
if(count($nums) <= 0) {
return 0;
}
$i = 0;//慢指针
for($j = 1; $j < count($nums); $j++) {//j是快指针
if($nums[$j] != $nums[$i]) {//如果快指针和慢指针不相同,则慢指针前移,且原数组中慢指针位置的值改为当前快指针的值
$i++;
$nums[$i] = $nums[$j];//这样数组的前i个值就是有序不重复
}
}
return $i+1;//这是数组的长度
}