Welcome 歡迎光臨! 愛上網路 - 原本退步是向前

Move Zeroes LeetCode 283

給一個陣列,把裡面出現的0搬到陣列最後面,剩下的元素保持原本的排序。

範例:
nums = [0, 1, 0, 3, 12] ,執行後回傳[1, 3, 12, 0, 0]

注意:
只能在當前陣列中操作,不能用一個新的陣列來解。盡量減少操作次數。

def moveZeroes(nums):
    """
    Do not return anything, modify nums in-place instead.
    """
    index = 0
    for i in range(len(nums)):
        if nums[i]: // 只要不為0 即成立將非0值往前移,使用index 這個變數
            nums[index] = nums[i]
            index += 1
    for j in range(index, len(nums)):
        nums[j] = 0   //將後更值記錄為0
    return nums
nums = [0, 1, 0, 3, 12]
print(nums) 
print(moveZeroes(nums)) 

另一個解法

https://medium.com/@urdreamliu/283-%E5%9C%96%E8%A7%A3-move-zeroes-4da4900f5aac

[ Python ] 瀏覽次數 : 29 更新日期 : 2024/07/28