static int x=[](){
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return 0;
}();
class Solution {
public:
void sortColors(vector<int>& nums) {
// 这里用三个变量保存最后一个0,1,2的位置,初始为-1
int zero = -1, one = -1, two = -1;
// 记住要倒着赋值
for (int i = 0; i < nums.size(); i++){
if (nums[i] == 0)
nums[++two] = 2, nums[++one] = 1, nums[++zero] = 0;
else if (nums[i] == 1)
nums[++two] = 2, nums[++one] = 1;
else if (nums[i] == 2)
nums[++two] = 2;
}
return;
}
};
LetCode 75. 分类颜色
最新推荐文章于 2024-07-22 09:30:39 发布
本文介绍了一种高效的三色排序算法实现方法,通过使用三个指针分别记录最后一个0、1、2的位置,对输入的整数数组进行就地排序。该算法特别适用于只有三种可能取值的元素排序问题。
733

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



