吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 727|回复: 3
收起左侧

[学习记录] C++ 力扣移除数组

[复制链接]
Allenone 发表于 2022-3-31 15:33
题目描述:
输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

class Solution {
public:
int removeElement(vector<int>& nums, int val) {
//遍历数组,把不等于val的值往前移
int count = 0;
int index = 0;
for(int i = 0; i < nums.size(); i++){
if(nums[i] != val){
nums[index++] = nums[i];
}
else{
count++;
}
}
while(index < nums.size()){
nums[index++] = 0;
}
//用原来长度减去val的个数等于新长度;
int n_len = nums.size() - count;
return n_len;
}
};

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

vtor 发表于 2022-4-1 10:57
好像能看懂,,,
但是你这个格式,,,,
看起来非常难受,,,非常难受
如果插入代码,麻烦用编辑器自带的代码段
unmask 发表于 2022-4-1 16:44
index和count是互补,所以count没有保留的必要,按照你的要求,中间的修0处理和计算n_len都没有必要,n_len就是index
 楼主| Allenone 发表于 2022-4-4 18:44
vtor 发表于 2022-4-1 10:57
好像能看懂,,,
但是你这个格式,,,,
看起来非常难受,,,非常难受

不好意思,第一次发帖
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表