小結給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o(1) 額外空間的條件下完成。
元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。
示例1:
給定 nums =[3
,2,2
,3], val =3,
函式應該返回新的長度 2
, 並且 nums 中的前兩個元素均為 2。
你不需要考慮陣列中超出新長度後面的元素。
示例2:
給定 nums =[0
,1,2
,2,3
,0,4
,2], val =2,
函式應該返回新的長度 5
, 並且 nums 中的前五個元素為 0,1
,3,0
,4。注意這五個元素可為任意順序。
你不需要考慮陣列中超出新長度後面的元素。
class
solution
:def
removeelement
(self, nums: list[
int]
, val:
int)
->
int:
i =0for j in
range
(len
(nums)):
if nums[j]
!= val:
nums[i]
= nums[j]
i +=
1 j +=
1return i
執行結果: 通過
執行用時: 32 ms, 在所有 python3 提交中擊敗了87.73%的使用者
記憶體消耗: 13.4 mb, 在所有 python3 提交中擊敗了38.51%的使用者
這道題與之前的題目很相似,運用雙指標的方法即可做出,乙個慢指標指向無目標值的列表的隊尾,另乙個快指標指向遍歷整個列表。
leetcode 字母異位詞分組(python)
題目 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。注意 需熟悉字典的相關使用方法 class so...
leetcode 200 島嶼數量 python
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11...
leetcode 字母異位詞分組 python3
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。python中使用 字典 維護乙個分組表,鍵值 key...