题解 | #草原上的牛群#

草原上的牛群

https://www.nowcoder.com/practice/0661aa40ac8e48f4906df7aa24c3db90

知识点:

双指针/数组

分析:

[1, 1, 3, 3, 5, 6]

设置两个指针 i,j 指向第一个数,下标为0的数,开始遍历:

1.当i==0时,做特殊处理,因为前后比较((i)和(i-1))的时候不能 0 - 1 = -1 会发生段错误,此时nums[j ++] = nums[i];

2.当nums[i] != nums[i-1]的时候,nums[j ++] = nums[i];

以此来更新数组,返回j ,则是新数组的下标。

编程语言:

C++

完整代码:

    int remove_duplicates(vector<int>& nums) {
        int i = 0;
        int j = 0;
        while(i < nums.size()){
            if(i == 0 || nums[i] != nums[i - 1]){
                nums[j++] = nums[i];
            }
            i++;
        }
        return j;
    }

全部评论

相关推荐

AC鸽想进大厂:你是我见过最美的牛客女孩
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务