LeetCode刷題記錄——第283題(移動零)
阿新 • • 發佈:2019-01-13
題目描述
給定一個數組 nums,編寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。
示例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說明:
必須在原陣列上操作,不能拷貝額外的陣列。
儘量減少操作次數。
思路分析
- 對於nums中不為零的數,需要的操作是:將其從第0位開始,順序排列,所以利用for迴圈遍歷列表,將不為0的元素放入對應的位置,這個思路很清晰
- 遍歷完後,所有的非0元素已經就位,需要將後續的索引全部用0填充,這樣就達到了移動0的效果
程式碼示例
class Solution:
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
i = 0
for num in nums:
if num != 0:
nums[i] = num
i += 1
for j in range(i,len(nums) ):
nums[j] = 0