题解 | #草原牛群集合#

草原牛群集合

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
    }

全部评论

相关推荐

半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
投了多少份简历才上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 15:08
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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