题目要求:
解题思路:
因为是有序数组,所以不用考虑数组元素前后大小问题,所以只需要删减重复的元素,这里我采用了记录重复元素第一次出现的下标,通过不断往后遍历数组,找到不重复的元素,进行数组元素移位,时间复杂度为O(n).
代码如下(C++):
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int j=1;
for(int i=1;i<nums.size();i++){
if(nums[i]>nums[i-1]){
nums[j]=nums[i];
j++;
}
}
return j;
}
};