移除元素
https://leetcode.cn/problems/remove-element/
给你一个数组nums和一个值val,你需要 原地 移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。
假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:
- 更改nums数组,使nums的前k个元素包含不等于val的元素。nums的其余元素和nums的大小并不重要。
- 返回k
示例1
输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2,_,_]
解释:你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。
示例2
输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3,_,_,_]
解释:你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。
注意这五个元素可以任意顺序返回。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
k = 0
for i in range(0, len(nums)):
if nums[i] != val:
nums[k] = nums[i]
k += 1
return k