【无标题】

【无标题】_第1张图片

【无标题】_第2张图片 这道题用暴力解法即可啊,因为题目给定的数组是非严格递增的,如果前一个数组不等于就加入到新的数组里面。

class Solution {
public:
    int removeDuplicates(vector& nums) {
        if (nums.size() == 0) {
            return 0;
        }

        int k = 1;
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] != nums[k - 1]) {
                nums[k] = nums[i];
                k++;
            }
        }
        return k;
    }
};

 k=1,i=1,遍历nums从第二个之后的所有元素,如果这个元素不等于前一个,那么把这个元素加入第k个,有多少个不同的就有k个元素,所以if里面要执行k++。这里不懂为什么返回值是一个nums数组

你可能感兴趣的:(力扣,c++,数据结构,leetcode)