Lintcode539 Move Zeroes solution 题解

【题目描述】

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

【参考答案】

www.jiuzhang.com/solutions/move-zeroes/



请使用浏览器的分享功能分享到微信等