题目描述
给定一个有序数组,原地删除数组中的重复元素。
样例
输入:nums = [1,1,2]
输出:2, nums = [1,2,_]
算法1
(暴力枚举)
因为需要挑选符合条件的值,这里的条件是:当前值与前一个不同(排好序的数组,相等元素相邻),或者是第一次出现的数。所以遍历数组,找到满足条件的值保存下来即可。
时间复杂度
O(n)
C++ 代码
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int n = 0;
for(int i = 0; i < nums.size(); i++){
if( !i || nums[i] != nums[i-1]) nums[n ++] = nums[i];
}
return n;
}
};