leetcode [26] 删除排序数组中的重复项 / Remove Duplicates from Sorted Array

在这里插入图片描述

题目地址

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

思路

此题就是O(n)的解法,拼速度的话,也就是剪剪枝
注意题目中:你不需要考虑数组中超出新长度后面的元素。 说明是要对原数组进行操作的

解法

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if (nums.empty()) return 0; // 别忘记空数组的判断
        int index = 0;
        for (int i = 0; i < (nums.size() - 1); i++){
            if(nums[i] != nums[i + 1]) { // 一旦发现和前一个不相同,就把num[i+1] 赋值给 nums[++index]
                nums[++index] = nums[i + 1]; // index = 0 的数据一定是不重复的,所以直接 ++index
            }
        }
        return index + 1; //别忘了index是从0开始的,所以返回index + 1
    }
};

我是代码君,在BAT从事技术研发多年,利用工作之余重刷leetcode,更多原创文章欢迎关注「代码随想录」。

发布了236 篇原创文章 · 获赞 251 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/youngyangyang04/article/details/105347305