Leetcode刷題283 移動零

2021-10-05 02:50:43 字數 1423 閱讀 4655

方法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,第二步刪除此0
class

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: 快慢指標交換思想,快指標指向當前元素,慢指標前邊的元素全為非0
class

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 解法二 遍歷兩次陣列,第...