题目描述:(. - 力扣(LeetCode))
思路:遍历,假如 后面的一个 不等于 前面的一个 就说明是独立的。暴力解法就多创一个数组来存储,而双指针法可以降低暴力解法的空间复杂度。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int len = nums.size();
int p = 0;
int q = 1;
while (q < len) {
if (nums[p] != nums[q]){//如果前面和后一个不相等,就存储,移动p指针
nums[p + 1] = nums[q];
p++;
}
q++;
}
return p + 1;
}
};
//优化一下代码
// while (q < len) {
// if (nums[p] == nums[q]) {
// q++;
// }else if (nums[p] != nums[q]){
// nums[p+1] = nums[q];
// p++;
// q++;
// }
// }
上面解法思路参考leetcode