LeetCode第283題 移動零

2021-10-19 09:27:26 字數 843 閱讀 8102

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。

示例:

輸入:[0

,1,0

,3,12

]輸出:[1

,3,12

,0,0

]

說明:

必須在原陣列上操作,不能拷貝額外的陣列。

儘量減少操作次數。

解法一:使用氣泡排序的方法將所有0移動到後面。

&emps; 解法二:遍歷兩次陣列,第一次先將所有的非零數移動到前面,即先前靠攏;第二次遍歷將陣列末尾多餘出來的位置賦值為零。

/**

* 氣泡排序解法

* @param nums

*/public

static

void

movezeroes

(int

nums)

} j--;}

}/**

* 兩次遍歷的解法

* @param nums

*/public

static

void

movezeroes2

(int

nums)

}//第二次遍歷將將末尾多出的位置都賦值為零

for(

int i=j; i

)}

氣泡排序解法的提交結果:

兩次遍歷解法的提交結果:

LeetCode刷題記錄 第283題(移動零)

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。class solution def movezeroes self,nums ...

Leetcode刷題283 移動零

方法1 把陣列中j個非零元素存放在陣列的前j項,之後把後邊的元素設定為0即可,如下 class solution def movezeroes self,nums list int none do not return anything,modify nums in place instead.j ...

移動零(力扣第283題)

給定乙個陣列nums,編寫乙個函式將所有0移動到陣列的末尾,同時保持非零元素的相對順序。示例輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。解法 借助乙個慢指標,該指標用於指向從最左端開始的非零子陣列的最後乙個元素的後乙個元素,...