题解 | #草原牛群集合#
草原牛群集合
https://www.nowcoder.com/practice/6fc74519ff9c44288dbcec5db7345ded
大家好,我是开车的阿Q,自动驾驶的时代已经到来,没时间解释了,快和阿Q一起上车。作为自动驾驶系统工程师,必须要有最好的C++基础,让我们来一起刷题吧。
题目考察的知识点
本题考察的知识点是如何在原数组上进行元素移除,同时要求空间复杂度为 O(1)。
题目解答方法的文字分析
给定一个整数数组 nums,表示每头牛的位置坐标。还有一个整数 val 表示牧犬发出的信号。
我们的任务是移除数组中与 val 相同的元素,并返回移动后的数组以及剩余元素数量。
具体步骤如下:
- 初始化变量
count为 0,表示剩余元素的数量。 - 遍历数组
nums,对于每个元素nums[i],如果与val不相等,则将nums[count]设为nums[i],同时增加count。 - 返回
count,即剩余元素的数量。
举例说明:假设给定数组为 nums = [3, 5, 3, 2, 4, 3],val = 3。
- 初始化
count = 0。 - 遍历数组,遇到元素与
val不相等时,将其移动到位置count,同时增加count。 - 最后得到剩余元素为
[5, 2, 4],返回剩余元素数量 3。
本题解析所用的编程语言 (C++)
本题解析所用的编程语言是 C++。
完整且正确的编程代码
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param val int整型
* @return int整型
*/
int remove_cows(vector<int>& nums, int val) {
int count = 0; // 剩余元素的数量
for (int i = 0; i < nums.size(); i++) {
if (nums[i] != val) {
nums[count] = nums[i]; // 移动元素到正确的位置
count++; // 增加剩余元素的数量
}
}
return count; // 返回剩余元素的数量
}
};
阿Q的题解 文章被收录于专栏
阿Q秋招刷过的题

查看16道真题和解析