颜色分类
Contents
问题描述
- 一个数组中只包含0,1,2三个数,将0放到数组最左边,2放到数组最右边,1在数组中间
https://leetcode-cn.com/problems/sort-colors/
思路
- 三个指针,p0,p,p2
- 循环条件(p <= p2)
- ==0时,交换p0和p并且p0和p都加1,这是因为从前面交换来的要么是0,要么是1,如果是1还好说,下一次p还可以向前走,但是如果是0的话,p就卡死在这了。
- ==2时,交换p和p2,并p2–;
- 其他情况,p++;
- p和p2不能同时变化。
- 一定要把逻辑搞清楚,不能重复判断。
Author 段新朋
LastMod 2020-07-09