class Solution {
public:
// void sortColors(vector<int>& nums) {
// int red=0,white=0,blue=0;
// for(int i=0; i<nums.size(); i++) {
// if(nums[i]==0)red++;
// else if(nums[i]==1)white++;
// else blue++;
// }
// for(int i=0; i<nums.size(); i++) {
// if(i<red)nums[i]=0;
// else if(i<red+white)nums[i]=1;
// else nums[i]=2;
// }
// }
void sortColors(vector<int>& nums) {
int p0=0,p1=0; //用于交换0和1
for(int i=0; i<nums.size(); i++) {
if(nums[i] == 0) {
swap(nums[i],nums[p0]);
if(p0 < p1) {
swap(nums[i],nums[p1]);
}
p0++;
p1++;
} else if(nums[i] == 1) {
swap(nums[i],nums[p1++]);
}
}
}
};
LeetCode颜色分类
原创
©著作权归作者所有:来自51CTO博客作者松月dd的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:LeetCode两数相加
下一篇:LeetCode下一个排序
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【LeetCode】39. 组合总和
【LeetCode】39. 组合总和
leetcode 数据结构与算法 C++ -
Python获取颜色RGB值
Python获取颜色RGB值
Python 图像处理 屏幕截图 -
【LeetCode 】颜色分类
颜色分类。使用三指针算法解决这个问题,为了避免特殊样例,再人为的添加了两个样本到数据集中,简化了运算过程。
leetcode 数据 最小值 python -
LeetCode 75.颜色分类
双指针排序
数组 i++ 双指针 -
Leetcode 颜色分类(冒泡排序)
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色
leetcode 算法 c++ 数组 i++