Easy
Related Topics: Array / Two Pointers
LeetCode Source
題目除了要回傳最後 nums
的長度,也需要將 nums
中含有 val
的值移除
這時我們需要兩個 pointer
i
需要指向遍歷的元素index
則指向要被替換的元素在過程中,我們需要計算有哪些值不等於 val
此時 nums[i] != val
的條件恰好可以滿足同時計算元素個數跟操作替換元素的動作
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
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;
}
};