Link: https://leetcode.com/problems/move-zeroes/
Content:
Method: two pointers (slow and fast pointers)
Very similar to P27 (remove element)
Algorithm:
- i - slow pointer (to record current position)
- j - fast pointer (to traverse the whole array), if nums[j] != 0, nums[i]=nums[j], i move to the next position.
- 在P27的基础上,将i 后面的值赋为0即可
Code:
def moveZeroes(nums):
i = 0
for j in range(len(nums)):
if nums[j] != 0:
nums[i] = nums[j]
i += 1 #length, solution of P27
for k in range(i, len(nums)):
nums[k] = 0
return nums