天天看點

11.19 每日一題 283. 移動零

給定一個數組

nums

,編寫一個函數将所有

移動到數組的末尾,同時保持非零元素的相對順序。

示例:

輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
           

說明:

  • 必須在原數組上操作,不能拷貝額外的數組。
  • 盡量減少操作次數。

通過次數

247,393

 | 送出次數

392,424

代碼實作

  • 棧方法
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        for i in range(nums.count(0)):
            nums.remove(0)
            nums.append(0)
           
  • 周遊修改法
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        c = 0
        for i in nums:
            if i != 0:
                nums[c] = i
                c += 1
        for i in range(c, len(nums)):
            nums[i] = 0
           
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/move-zeroes
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。