Easy
Related Topics: Array / Two Pointers
LeetCode Source
解题想法
题目除了要回传最后 nums
的长度,也需要将 nums
中含有 val
的值移除
这时我们需要两个 pointer
i
需要指向遍历的元素另一个 pointer index
则指向要被替换的元素在过程中,我们需要计算有哪些值不等于 val
此时 nums[i] != val
的条件恰好可以满足同时计算元素个数跟操作替换元素的动作
Python
class Solution: def removeElement(self, nums: List[int], val: int) -> int: index = 0 for i in range(len(nums)): if nums[i] != val: nums[index] = nums[i] index += 1 return index
C++
class Solution {public: int removeElement(vector<int>& nums, int val) { int index = 0; for (int i = 0; i < nums.size(); i++) { if (nums[i] != val) { nums[index] = nums[i]; index += 1; } } return index; }};