LeetCode 第27題 移除元素

2022-08-02 17:36:12 字數 1023 閱讀 3134

1. 題目

2.題目分析與思路

3.**

給定 nums = [3,2,2,3], val = 3,

函式應該返回新的長度 2, 並且 nums 中的前兩個元素均為 2。

你不需要考慮陣列中超出新長度後面的元素。

這道題經典的雙指標,或者使用很奇特的做法,用python的後續遍歷

雙指標

class

solution:

def removeelement(self, nums: list[int], val: int) ->int:

count = len(nums) -1i =0

if len(nums) ==0:

return

0

while(i if nums[count] ==val:

count -= 1

continue

if nums[i] ==val:

nums[i],nums[count] =nums[count],nums[i]

i += 1count -= 1

else

: i += 1

if nums[i] ==val:

return

i

else

:

return i+1

python 後續遍歷:

class

solution:

def removeelement(self, nums: list[int], val: int) ->int:

j=len(nums)

for i in range(j-1,-1,-1):

if nums[i]==val:

nums.pop(i)

return len(nums)

那為什麼不能用前向遍歷呢,因為使用pop會改變陣列長度,pop完後指標又自增1,就會導致漏掉數字,感覺挺有意思的這個解法。

leetcode刷題筆記 第27題 移除元素

描述 給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 給定 nums 3,2,2,3...

Leetcode 刻意訓練第27題移除元素

題目描述 給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。解題思路 剛開始拿到這題的時候首...

leetcode題 27 移除元素(簡單)

一 題目描述 27.移除元素 簡單 給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 ...