给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array
class Solution {
public int removeDuplicates(int[] nums) {
if (nums.length == 0) return 0 ;
//初始一个下标为0 的标记数
int i = 0;
for (int y = 0; y < nums.length; y++ ){
/* 比较两个下标*/
if( y > i) { //如果数组本身在的下标大于 定义下标
/* 比较两者之间的数据 */
if (nums[y] > nums[i]){ // 如果数组本身的下标大于标记下标 数据下标新增 i++ 并且 y 的值 覆盖 i的值
i++;
nums[i] = nums[y];
}
}
}
return i + 1;//返回长度
}
}