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;
    }
};