题解 | #草原牛群集合# 数组模拟
草原牛群集合
https://www.nowcoder.com/practice/6fc74519ff9c44288dbcec5db7345ded
知识点
模拟
思路
要求不能使用额外的空间,因为原数组的大小一定不小于不等于val的数量,所以可以记录一个大小sz,每次把对应的元素放到这个位置后 sz += 1
最后遍历整个数组之后,得到的sz就是题目的要求。
时间复杂度
遍历数组的每个位置最多2次,是线性复杂度的
AC code(C++)
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param val int整型
* @return int整型
*/
int remove_cows(vector<int>& nums, int val) {
int sz = 0, n = nums.size();
for (int i = 0; i < n; i ++) {
if (nums[i] != val) {
nums[sz ++] = nums[i];
}
}
return sz;
}
};
查看24道真题和解析
深信服公司福利 732人发布