Problem Description
Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
Analyze
traverse the array,remove zero at index and append zero at last
Code
class Solution {
func moveZeroes(inout nums: [Int]) {
var zeroCount: Int = 0
for (index, num) in nums.enumerate() {
if num == 0 {
//index was changed
nums.removeAtIndex(index-zeroCount)
nums.append(0)
zeroCount += 1
}
}
}
}