1.题目
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
2.题解
这个题目的空间复杂度是O(1).所以也就是说我们创建的对象数得是一个恒定的常数。而且我们已经明确了要用“原地”转换的方法将多余的部分排除。其实就是将不重复的部分往前移动即可。
那么逻辑就是,使用一个number数来明确当前的位置,从0开始,每移动一次就number++;
再用一个i(i=number+1)来进行i<num.length 的遍历。就可以将整个数组判断清楚;
注意:因为number是数组下标,所以结果数组的个数是number+1;
3.代码
Java
class Solution {
public int removeDuplicates(int[] nums) {
int length = nums.length;
if(length==0)return 0;
//mian
int number=0;
for (int i = number+1; i <length ; i++) {
if(nums[number]!=nums[i]){
number++;
nums[number]=nums[i];
}
}
return number+1;
}
}
网友评论