为了账号安全,请及时绑定邮箱和手机立即绑定

Lintcode539 Move Zeroes solution 题解

标签:
C C++

【题目描述】

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/



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消