核心思想,三个游标,L,mid,R
以mid游标为主循环
/*
* @lc app=leetcode id=75 lang=cpp
*
* [75] Sort Colors
*/
// @lc code=start
class Solution {
public:
void sortColors(vector<int>& nums) {
int N = nums.size();
int L = 0;
int R = N-1;
int mid = 0;
while(mid <= R){
if(nums[mid] == 0){
swap(nums[mid],nums[L]);
L++;
mid++;
continue;
}
if(nums[mid] == 1){
mid++;
continue;
}
if(nums[mid] == 2){
swap(nums[mid],nums[R]);
R--;
continue;
}
}
}
};
// @lc code=end
本文介绍了一种使用三个游标(L,mid,R)的高效算法,用于解决LeetCode上的“75.颜色分类”问题。该算法通过主循环遍历mid游标,根据不同条件交换元素位置,实现0、1、2三种颜色的快速排序。

被折叠的 条评论
为什么被折叠?



