iT邦幫忙

0

[LeetCode] 27. Remove Element

  • 分享至 

  • xImage
  •  

Easy
Related Topics: Array / Two Pointers
LeetCode Source

解題想法

題目除了要回傳最後 nums 的長度,也需要將 nums 中含有 val 的值移除
這時我們需要兩個 pointer

  • 一個 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;
    }
};

這系列文被記錄在 Top Interview 150 Series


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言