题解 | #草原牛群集合#

草原牛群集合

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

知识点

双指针

思路

用i和j分别维护当前遍历到的位置以及当前放置的位置。

当nums[i]!=vals时,将其放在nums[j]处,同时j++。否则j不变。i始终保持右移。

最后数组中就去除了所有vals,并且j即为数组的大小。

代码c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @param val int整型 
     * @return int整型
     */
    int remove_cows(vector<int>& nums, int val) {
        // write code here
        int i = 0; // 指向当前要处理的元素
        int j = 0; // 指向下一个要放置元素的位置
        int n = nums.size();
      for(int i=0;i<n;i++)
      {
            if (nums[i] != val) {
                nums[j] = nums[i];
                j++;
            }
        }
        return j;

    }
};
全部评论

相关推荐

小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务