方法1:把陣列中j個非零元素存放在陣列的前j項,之後把後邊的元素設定為0即可,如下:
class
solution
:def
movezeroes
(self, nums: list[
int])-
>
none
:"""
do not return anything, modify nums in-place instead.
"""j =
0#利用變數j,把非零元素放在陣列前邊
for i in
range
(len
(nums)):
if nums[i]!=0
: nums[j]
= nums[i]
j +=
1#後邊的元素設定為0
for i in
range
(j,len
(nums)):
nums[i]
=0
方法2: 當發現陣列**現0, 第一步在末尾增加0,第二步刪除此0class
solution
:def
movezeroes
(self, nums: list[
int])-
>
none
:"""
do not return anything, modify nums in-place instead.
"""for i in
range
(len
(nums)):
if nums[i]==0
:0) nums.remove(nums[i]
)
方法3: 快慢指標交換思想,快指標指向當前元素,慢指標前邊的元素全為非0class
solution
:def
movezeroes
(self, nums: list[
int])-
>
none
:"""
do not return anything, modify nums in-place instead.
"""j =
0for i in
range
(len
(nums)):
if nums[i]!=0
: nums[j]
, nums[i]
= nums[i]
, nums[j]
j +=
1
leetcode刷題打卡 283移動零
題目描述 給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0 1,0 3,12 輸出 1 3,12 0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。解題思路 定義兩個指標 a b,指標a一直在遍歷原陣列,指標a b一起...
LeetCode刷題記錄 第283題(移動零)
給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。class solution def movezeroes self,nums ...
LeetCode第283題 移動零
給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0 1,0 3,12 輸出 1 3,12 0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。解法一 使用氣泡排序的方法將所有0移動到後面。emps 解法二 遍歷兩次陣列,第...