三向切分问题
https://leetcode.cn/problems/sort-colors/
数据特殊,可利用排序直接得到答案啊,也可以利用双指针法。
设置两个指针l,r。l从0开始,r从末尾开始。遍历数组,当i遇到0时与l指针元素互换位置。当遇到2时与r指针互换位置。注意到:与r互换位置后,nums[i]有可能仍为2,所以需要循环进行交换判断。 与l交换时没有这样的问题,因为i为从左到右扫描,不可能交换后仍为0。
代码:
1 |
|
三向切分问题
http://jty-123.github.io/2022/07/09/三向切分(荷兰国旗问题)/