Contents
1
2
3
4
5
6
7
8
9
10
11
12
13
/*
* Given a sorted array, remove the duplicates in place such that each element
* appear only once and return the new length.

* Do not allocate extra space for another array, you must do this in place with
* constant memory.

* For example,
* Given input array A = [1,1,2],

* Your function should return length = 2, and A is now [1,2].
*
*/

题意:
给一个有序数列,删重复的元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
int removeDuplicates(vector<int>& nums) {
if(nums.size() == 0){
return 0;
}
int index = 1;
int n = nums.size();
for(int i = 1; i < n; i++){
if(nums[i] != nums[i-1]){
nums[index++] = nums[i];
}
}
return index;
}
1
2
3
4
5
6
7
8
9
10
11
12
public class RemoveDuplicatesFromSortedArray {
public int removeDuplicates(int[] A) {
if(A.length == 0)
return 0;
int cnt = 1;
for(int i = 1; i < A.length; i++) {
if(A[i] != A[i - 1])
A[cnt++] = A[i];
}
return cnt;
}
}
Contents