給一個陣列,把裡面出現的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