【题目描述】
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.
Notice
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序
注意事项
1.必须在原数组上操作
2.最小化操作数
【题目链接】
www.lintcode.com/en/problem/move-zeroes/
【题目解析】
1、使用两个"指针"x和y,初始令y = 0
2、利用x遍历数组nums:
3、若nums[x]非0,则交换nums[x]与nums[y],并令y+1
注意:
y指针指向首个0元素可能存在的位置
遍历过程中,算法确保[y, x)范围内的元素均为0
【参考答案】