LeetCode-Remove Duplicates From Sorted Array

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

用最直接的思路,扫描整个数组,遇到重复值就跳过,非重复值直接复制到前面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public int removeDuplicates(int[] nums) {
int numsLength=nums.length;
if(numsLength<=1){
return numsLength;
}
int nowPosition=1;
int nowNum=nums[0];
for(int i=1;i<numsLength;i++){
if(nums[i]!=nowNum){
nowNum=nums[i];
nums[nowPosition]=nums[i];
nowPosition++;
}
}
return nowPosition;
}
}

还可以将变量简化一下,只用一个循环外的值就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public int removeDuplicates(int[] nums) {
if(nums.length<=1){
return nums.length;
}
int nowId=0;
for(int i=1;i<nums.length;i++){
if(nums[i]!=nums[nowId]){
nowId++;
nums[nowId]=nums[i];
}
}
return nowId+1;
}
}