143. 排颜色 II
发布日期:2021-06-28 19:27:33
浏览次数:4
分类:技术文章
本文共 789 字,大约阅读时间需要 2 分钟。
143. 排颜色 II
给定一个有n个对象(包括k种不同的颜色,并按照1到k进行编号)的数组,将对象进行分类使相同颜色的对象相邻,并按照1,2,...k的顺序进行排序。
样例
样例1
输入:
[3,2,2,1,4]
4
输出:
[1,2,2,3,4]
样例2
输入:
[2,1,1,2,2]
2
输出:
[1,1,2,2,2]
挑战
一个相当直接的解决方案是使用计数排序扫描2遍的算法。这样你会花费O(k)的额外空间。你否能在不使用额外空间的情况下完成?
注意事项
- 不能使用代码库中的排序函数来解决这个问题
- k <= n
public class Solution {
/**
* @param colors: A list of integer
* @param k: An integer
* @return: nothing
*/
public void sortColors2(int[] nums, int k) {
int j=nums.length-1;
int flag = 0;
for (int i = 0; i < nums.length; ) {
if (nums[i] != flag) {
// System.out.println(i+","+nums[i]+","+flag);
while (nums[j] != flag) {
j--;
if (j<=i) {
flag++;
if (flag == k) return;
break;
}
}
if (j>i) {
// System.out.println(i+","+j);
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
i++;
}else{
j=nums.length-1;
}
}else{
i++;
}
}
}
}
转载地址:https://blog.csdn.net/xwdrhgr/article/details/116005042 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月16日 13时17分01秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
<param name="wmode" value="transparent">
2019-04-29
myeclipse集成ant
2019-04-29
mysql show processlist命令 详解
2019-04-29
虚拟机字节码执行引擎
2019-04-29
HashMap小记
2019-04-29
类的热编译+热加载的功能
2019-04-29
Vector类与ArrayList类
2019-04-29
String特性之 “字符串驻留池”
2019-04-29
集合篇-----ArrayList与LinkedList之间的那些小事
2019-04-29
Linux系统的优点小结
2019-04-29
15个Google面试题,看看自己能答对几个,看你是否真的聪明。。。
2019-04-29
Clone使用方法详解
2019-04-29
Java clone() 浅克隆与深度克隆
2019-04-29
Java中对象与引用
2019-04-29
JDK 1.7 Integer.parseInt 源码解析
2019-04-29
Java单例模式
2019-04-29
三种方法拆分字符串
2019-04-29
贪心算法基本思想和典型例题
2019-04-29
坑爹的小学数学题
2019-04-29