颜色分类
2018-02-03 17:15
232 查看
给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。
我们可以使用整数 0,1 和 2 分别代表红,白,蓝。
注意事项
不能使用代码库中的排序函数来解决这个问题。
排序需要在原数组中进行。
class Solution {
public:
/*
* @param nums: A list of integer which is 0, 1 or 2
* @return: nothing
*/
void sortColors(vector<int> &nums) {
// write your code here
int sum1=0,sum2=0;
int test,sum=0;
for(int i=0;i<nums.size();i++){
sum++;
if(nums[i]==0){
test=nums[i];
nums.erase(nums.begin()+i);
nums.insert(nums.begin(),test);
sum1++;
}else if(nums[i]==1){
test=nums[i];
nums.erase(nums.begin()+i);
nums.insert(nums.begin()+sum1,test);
}else{
test=nums[i];
nums.erase(nums.begin()+i);
nums.insert(nums.end(),test);
i--;
}
if(sum==nums.size()){
return ;
}
}
}
};
我们可以使用整数 0,1 和 2 分别代表红,白,蓝。
注意事项
不能使用代码库中的排序函数来解决这个问题。
排序需要在原数组中进行。
class Solution {
public:
/*
* @param nums: A list of integer which is 0, 1 or 2
* @return: nothing
*/
void sortColors(vector<int> &nums) {
// write your code here
int sum1=0,sum2=0;
int test,sum=0;
for(int i=0;i<nums.size();i++){
sum++;
if(nums[i]==0){
test=nums[i];
nums.erase(nums.begin()+i);
nums.insert(nums.begin(),test);
sum1++;
}else if(nums[i]==1){
test=nums[i];
nums.erase(nums.begin()+i);
nums.insert(nums.begin()+sum1,test);
}else{
test=nums[i];
nums.erase(nums.begin()+i);
nums.insert(nums.end(),test);
i--;
}
if(sum==nums.size()){
return ;
}
}
}
};
相关文章推荐
- LintCode-颜色分类
- 使用带有隐层的神经网络实现颜色二分类
- 设置secureCRT中vim的字体颜色 分类: B3_LINUX 2014-07-12 22:01 1573人阅读 评论(0) 收藏
- LintCode_颜色分类
- JavaScript分类显示随机颜色【红绿蓝青黄紫、黑白、全彩】
- ionic中循环出来的分类组点击改变背景颜色的实现
- opencv下使用SVM进行简单颜色分类
- Java实现-颜色分类
- exchang2010如何设置允许传输颜色分类!
- 利用分类(category)扩充UIImage,实现按钮点击改变背景颜色
- leetcode-颜色分类
- 按颜色分类:黑色和白色(Black & White)
- 库存系统根据颜色和分类生成各颜色分类的数量和价格表单
- DBGrid的分类颜色显示
- 按颜色分类:紫色系(Purple)
- lintcode-颜色分类-148
- 颜色空间及分类
- 颜色分类
- 按颜色分类:蓝紫色系(Purple Blue)
- 颜色分类