leetcode75笔记

对于循环的理解,因为外层for循环是从0到num.size方向遍历的,所以在遇到2往后交换的时候要使用while循环,达到不断交换直到换过来1或0为止,不能用if,这样直接进后面判1,然后for循环,相当于什么都没做,会让换过来的2漏判。之后在同一个下标i的for循环内再去判断是否为0,由于在i之前的数据已经被遍历过,只可能是连续的0拼上连续的1,zero指向的总是第一个1,不需要while来判断。

如果先if再while,while会从后面换来0,跳过后就漏掉0了,类似判2的while用if的情况。

如果想用while判断0,if判断2,把0 2身份互换,不能从小到大for循环遍历,因为本质if判0也是循环,只是借助了for的循环。而if判2就是前面说到的那种情况。

图片内容和代码均出自ACM 金牌选手教你比快排还快的排序。力扣 No.75 颜色分类,真·动画教编程,适合语言初学者或编程新人。_哔哩哔哩_bilibili

本文纯属个人学习笔记用途,以便后续复习查阅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值