颜色分类
2017-07-28 22:56
134 查看
给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。
我们可以使用整数 0,1 和 2 分别代表红,白,蓝。
注意事项
不能使用代码库中的排序函数来解决这个问题。
排序需要在原数组中进行。
样例
给你数组 [1, 0, 1, 2], 需要将该数组原地排序为 [0, 1, 1, 2]。
import java.util.HashMap;
import java.util.Scanner;
/**
* 给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。
我们可以使用整数 0,1 和 2 分别代表红,白,蓝。
注意事项
不能使用代码库中的排序函数来解决这个问题。
排序需要在原数组中进行。
样例
给你数组 [1, 0, 1, 2], 需要将该数组原地排序为 [0, 1, 1, 2]。
*
* @author Dell
*
*/
public class Test148 {
public static void sortColors(int[] nums)
{
if(nums.length==0)
return;
HashMap<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++)
{
if(map.containsKey(nums[i]))
{
map.put(nums[i],map.get(nums[i])+1);
}else
{
map.put(nums[i], 1);
}
}
int numofzero=map.get(0);
int numofone=map.get(1);
for(int i=0;i<nums.length;i++)
{
if(i<numofzero)
{
nums[i]=0;
}
else if(i<numofzero+numofone)
{
nums[i]=1;
}
else
{
nums[i]=2;
}
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int
;
for(int i=0;i<a.length;i++)
{
a[i]=sc.nextInt();
}
sortColors(a);
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}
我们可以使用整数 0,1 和 2 分别代表红,白,蓝。
注意事项
不能使用代码库中的排序函数来解决这个问题。
排序需要在原数组中进行。
样例
给你数组 [1, 0, 1, 2], 需要将该数组原地排序为 [0, 1, 1, 2]。
import java.util.HashMap;
import java.util.Scanner;
/**
* 给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。
我们可以使用整数 0,1 和 2 分别代表红,白,蓝。
注意事项
不能使用代码库中的排序函数来解决这个问题。
排序需要在原数组中进行。
样例
给你数组 [1, 0, 1, 2], 需要将该数组原地排序为 [0, 1, 1, 2]。
*
* @author Dell
*
*/
public class Test148 {
public static void sortColors(int[] nums)
{
if(nums.length==0)
return;
HashMap<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++)
{
if(map.containsKey(nums[i]))
{
map.put(nums[i],map.get(nums[i])+1);
}else
{
map.put(nums[i], 1);
}
}
int numofzero=map.get(0);
int numofone=map.get(1);
for(int i=0;i<nums.length;i++)
{
if(i<numofzero)
{
nums[i]=0;
}
else if(i<numofzero+numofone)
{
nums[i]=1;
}
else
{
nums[i]=2;
}
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int
;
for(int i=0;i<a.length;i++)
{
a[i]=sc.nextInt();
}
sortColors(a);
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}
相关文章推荐
- ArcGIS API For Javascript之颜色分类实现
- lintcode--颜色分类
- Swift开发 UIColor分类Hex颜色转换
- 图像处理------颜色梯度变化 (Color Gradient) 分类: 视频图像处理 2015-07-24 09:23 27人阅读 评论(0) 收藏
- 【matlab】:颜色模型的分类及颜色模型的转换简介
- 颜色分类
- android主题Theme.NoTitleBar.Fullscreen下如何设置程序的字体颜色为黑色 分类: Android界面和组件 2014-06-21 14:04 162人阅读 评论(0) 收藏
- android用sku算法仿淘宝选择颜色分类弹框。
- 颜色分类
- RGB,CMY(K),YUV,YIQ,YCbCr颜色的转换算法(java实现) 分类: Android JAVA 2015-06-08 19:30 26人阅读 评论(0) 收藏
- lintcode-148-颜色分类
- 基于图像的室内装修风格分类系统(二)---提取颜色特征
- ios uicolor的分类——十六进制的颜色转换为UIColor
- 颜色分类
- echo的高级用法-颜色输出与光标定位 分类: Ubuntu学习笔记 2015-07-26 22:54 17人阅读 评论(0) 收藏
- Lintcode: 颜色分类
- envi分类后修改类名称、显示颜色
- 148. 颜色分类
- exchang2010如何设置允许传输颜色分类!
- 按颜色分类:黑色和白色(Black & White)