题解 | #草原牛群集合#

草原牛群集合

https://www.nowcoder.com/practice/6fc74519ff9c44288dbcec5db7345ded

知识点:

双指针/数组/原地

分析:

不额外增加数组,在原数组的基础上进行删除

可以考虑使用双指针方法 

首先使用两个指针指向数组的首元素,这里要清楚两个指针分别的作用是什么,i指针的作用是用来判断是否要进行元素删除,我们称为主指针,那么j指针,j指针就是辅助i指针完成移除操作的指针。

在i指针进行遍历,从首元素遍历至尾元素,如果i指针指向的元素不是要删除的元素,那么将i指针指向的值赋给j指针,并让j指针往后移动一个,然后i指针也往后移动一个。

当整个数组遍历结束,j指针指向的位置就是新数组的结尾,故返回它就是整个数组的长度

编程语言:

C++

完整代码:

    int remove_cows(vector<int>& nums, int val) {
        int i = 0,j = 0;
        while(i < nums.size()){
            if(nums[i] != val){
                nums[j++] = nums[i];
            }
            i++;
        }
        return j
    }

全部评论

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务