颜色分类

原创 2018年04月16日 14:10:38
       算法题:颜色分类
  给定一个包含红,白,蓝且长度为 n 的数组,写一个函数实现将数组元素进行分类使相同颜色的元素相邻,
  并按照红、白、蓝的顺序进行排序。我们可以使用整数 0,1 和 2 分别代表红,白,蓝。


注意事项:
1、不能使用代码库中的排序函数来解决这个问题。
2、排序需要在原数组中进行。

格式:

第一行输入一个由 0,1,2 组成的数组,最后输出分类排序后的数组。

样例输入

[ 1,0,1,2 ]

样例输出

[ 0,1,1,2 ]


java版本的代码实现:

package cn.cat.algorithm;

import java.io.IOException;
import java.util.Arrays;
import java.util.Random;


public class ColorClassification {
	/** 
	 * @Description: 
	 * @author gwj
	 * @Created 2017年11月10日 上午10:36:46 
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		int RED = 0, WHITE = 1, BLUE = 2;
		int[] colors = new int[10];
		Random random = new Random();
		for (int i = 0; i < colors.length; i++) {
			colors[i] = random.nextInt(3);
		}
		System.out.println("排序前:" + Arrays.toString(colors));
		
		//先排序红色,然后排序白色,剩余的都是蓝色,不需要再排序
		int nextIndex = sortFront(colors, 0, RED);
		sortFront(colors, nextIndex, WHITE);
		System.out.println("排序后:" + Arrays.toString(colors));
	}
	
	/** 前向排序,将指定的颜色向前排序在一起。
	 * @Description: 
	 * @author gwj
	 * @Created 2017年11月10日 上午10:47:39 
	 * @param colors 颜色数组
	 * @param startIndex 起始标识
	 * @param color 颜色值
	 * @return 返回可使用的数组下一个索引值。
	 */
	static int sortFront(int colors[], int startIndex, int color) {
		for (int i = startIndex; i < colors.length; i++) {
			if (colors[i] == color) {
				int temp = colors[startIndex];
				colors[startIndex] = colors[i];
				colors[i] = temp;
				startIndex++;
			}
		}
		return startIndex;
	}
}










版权声明:本文为博主原创文章,如需转载,必须在转载处声明原作者,已经加入博客原链接地址。 https://blog.csdn.net/u013777382/article/details/79959896

LintCode:颜色分类

题目:给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。 我们可以使用整数 0,1 和 2 分别代表红,白,蓝。 挑战:一个...
  • zyf19930610
  • zyf19930610
  • 2016-09-19 18:16:13
  • 279

为Outlook分类设置颜色的实践

转自:http://blog.vsharing.com/journeyman/A800193.html 为Outlook分类设置颜色的实践 [原创]为Outlook分类设置颜色的实践 ...
  • fitlife
  • fitlife
  • 2013-04-10 11:30:50
  • 2074

按颜色分类:蓝色系(Blue)

  screen.width-600)this.style.width=screen.width-600;"> 很多站点都在使用蓝色...
  • mc_hoho
  • mc_hoho
  • 2006-11-10 09:42:00
  • 793

LintCode-颜色分类

给定一个包含红,白,蓝且长度为n的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。 我们可以使用整数0,1和2分别代表红,白,蓝。 样例 注意 不能使用代...
  • wangyuquanliuli
  • wangyuquanliuli
  • 2015-05-18 10:35:36
  • 1583

envi分类后修改类名称、显示颜色

envi版本:envi新版5.1;win1064win10_{64}位问题描述如下图,想修改成英文名字(否则转成shape文件会出现问题) 解决方案 以下使用默认值5 在此处修改 ...
  • nima1994
  • nima1994
  • 2017-11-19 11:15:29
  • 839

opencv下使用SVM进行简单颜色分类

在opencv下有个SVM的例子,我把那个例子改了改,试试能否对颜色进行分类,下面我给出代码! #include #include #include #include using namesp...
  • ZaiYxx
  • ZaiYxx
  • 2016-01-31 10:04:21
  • 1511

对图片颜色的分类处理

  • 2013年03月23日 23:04
  • 5KB
  • 下载

如何改变Discuz!系列版本主题分类前缀名称颜色、字体大小 、加粗等问题解决方法

不少朋友可能像我一样,在对Discuz!系列版本进行DIY时都会或多或少的遇到一点小小问题和困难,如果我们在后台设置里面找不到我们想对前台进行编辑的功能时,我们内心就会有些烦躁。例如,关于主题分类前缀...
  • linyueh
  • linyueh
  • 2012-02-11 19:19:54
  • 1401

城市规划中的标准用地颜色

  • 2009年05月09日 16:03
  • 3.1MB
  • 下载

排颜色问题——数组 leetcode lintcode

问题描述: 给一个数组,并且数组里面元素的值只可能是0,1,2,然后现在把这个数组排序。 另外一种表述: 现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至...
  • TommyZht
  • TommyZht
  • 2015-06-08 09:11:15
  • 820
收藏助手
不良信息举报
您举报文章:颜色分类
举报原因:
原因补充:

(最多只允许输入30个字)