题解 | #草原牛群集合#

草原牛群集合

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

考察的知识点:双指针;

解答方法分析:

  1. 首先,定义两个指针i和j,分别指向数组的开头和末尾。
  2. 使用while循环遍历数组,循环条件是i <= j。
  3. 在循环中,判断当前位置的元素是否与目标值val相等。如果相等,将尾元素值赋给当前位置的元素,即nums[i] = nums[j],同时将j指针向前移动一位。如果不相等,将i指针向后移动一位。
  4. 重复执行步骤3,直到i > j。
  5. 返回i的值作为剩余元素的数量。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型vector
     * @param val int整型
     * @return int整型
     */
    int remove_cows(vector<int>& nums, int val) {
        int n = nums.size();
        int i = 0;
        int j = n - 1;
        while (i <= j) {
            if (nums[i] == val) {
                nums[i] = nums[j];
                j--;
            } else {
                i++;
            }
        }
        return i;
    }
};

全部评论

相关推荐

06-11 14:15
已编辑
门头沟学院 后端
田心今心:打招呼改一下,把实习半年以上随时到岗放第一行,因为ssob的hr不点击看的时候只能看前面几个字,你前面几个字hr获取不到什么信息,也就不会点进来看
点赞 评论 收藏
分享
jnsytgsyqj...:简历跟测试没关系,你更适合运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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