一、题目
给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于 val的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:
- 更改 nums数组,使nums的前k个元素包含不等于val的元素。nums的其余元素和nums的大小并不重要。
- 返回 k。
二、思路
- 从前往后遍历:我们可以从数组的开头开始遍历,找到等于 val的元素,并将其移到数组的末尾。
- 使用指针 k:我们需要一个指针k来记录不等于val的元素的数量,同时也作为下一个不等于val的元素应该放置的位置。
三、具体步骤
- 初始化指针 k:设置k为 0,表示当前不等于val的元素的数量。
- 遍历数组:使用另一个指针 i从头到尾遍历数组nums。
- 判断元素:
- 如果 nums[i]不等于val,将nums[i]放到nums[k]的位置,并将k加 1。
- 如果 nums[i]等于val,则跳过这个元素。
 
- 如果 
- 返回结果:最终 k就是不等于val的元素的数量。
① JavaScript代码:
            
            
              javascript
              
              
            
          
          function remove(nums, val){
    let k = 0;
    for(let i =0;i<nums.length;i++){
        if (nums[i]!==val){
            nums[k]=nums[i];
            k++;
        }
    }
    return k;
}② python代码:
            
            
              python
              
              
            
          
          def removeVal(nums,val):
    k = 0
    for i in range(len(nums)):
        if nums[i] != val:
            nums[k] = nums[i]
            k += 1
    return k