Allenone 发表于 2022-3-31 15:33

C++ 力扣移除数组

题目描述:
输入:nums = , val = 3
输出:2, nums =
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = 或 nums = ,也会被视作正确答案。

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 != val){
                nums = nums;
            }
            else{
                count++;
            }
      }
      while(index < nums.size()){
            nums = 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
好像能看懂,,,
但是你这个格式,,,,
看起来非常难受,,,非常难受


不好意思,第一次发帖
页: [1]
查看完整版本: C++ 力扣移除数组