1. 程式人生 > >LeetCode刷題記錄——第283題(移動零)

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

題目描述

給定一個數組 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