题意:给出一个字符串,问需要几个栈,来使得每个栈的字符串按字典序方式存在栈中

思路:在遍历字符串时,在当前的几个栈中找到满足当前字符小于栈顶字符,并且与栈顶字符距离最近。

代码如下:

import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner;public class Main {private int solver(String s){char[] chars = s.toCharArray();int[] stacks = new int[chars.length];int cnt = 0;for (int i = 0; i < chars.length; i++){boolean found = false;int ch = chars[i] - 'A' + 1;int max = Integer.MAX_VALUE;int curpos = 0;for (int j = 0; j < cnt; j++){if (stacks[j] >= ch){found = true;if (stacks[j] - ch < max){max = stacks[j] - ch;curpos = j;}}}if (found){stacks[curpos] = ch;}else{stacks[cnt++] = ch;}}return cnt;}public static void main(String[] args){Scanner scanner = new Scanner(new BufferedInputStream(System.in));Main solver = new Main();int cas = 1;while (scanner.hasNext()){String s = scanner.nextLine();if ("end".compareTo(s) == 0) break;int ans = solver.solver(s);System.out.println("Case " + cas++ + ": " + ans);}}
}

UVa1062 - Containers贪心算法相关推荐

  1. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  2. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  3. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  4. 一份贪心算法区间调度问题解法攻略,拿走不谢

    作者 | labuladong 来源 | labuladong(ID:labuladong) [导读]什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多 ...

  5. 漫画:五分钟学会贪心算法!

    假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些"局部最优解"叠起来,就"当作&qu ...

  6. 下载插件(贪心算法)

    小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载.假定每分钟选择以下两种策略之一: 使用当前带宽下载插件 将带宽加倍(下载插件数量随之加倍) 请返回小扣完 ...

  7. Runnable接口和贪心算法

    1 Runnable接口 Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现.设计该接口的目的是为希望在活动时执行代码的对象提供一个公共协议.激活的意思是说某个线程已启动并且尚未停止 ...

  8. 拜托,别再问我贪心算法了!

    来自:码海 前言 上篇一文学会动态规划解题技巧 被不少号转载了,其中发现有一位读者提了一个疑惑,在求三角形最短路径和时,能否用贪心算法求解.所以本文打算对贪心算法进行简单地介绍,介绍完之后我们再来看看 ...

  9. Dijkstra 贪心算法 动态规划

    我认为 Dijkstra算法 的本质是 广度优先搜索, 而此处的广度是定义在路程的cost之上的. (就好比从圆心处向外扩散一个圆环,首次碰到的就是最近) 动态规划泛指,重叠子问题与原问题的推算关系( ...

最新文章

  1. ArcSDE、ArcGis Engine、ArcGis Desktop的授权配置
  2. Python 绘图问题:Matplotlib中plt.rcParams[]使用方法 rcsetup.py matplotlibrc
  3. java8 stream 做累加_《Java 8 in Action》Chapter 1:为什么要关心Java 8
  4. php对角线数组代码,php数组内容查找代码
  5. 个人简介页面如何设计?优秀案例给你灵感
  6. yolov5-pytorch训练自己的数据集
  7. 双系统win+ubuntu无法访问win的盘符
  8. fat32 linux 打包工具_UbuntuLinux默认安装图形化的压缩工具是File-Roller文件打包器.ppt...
  9. Python 贪吃蛇小游戏
  10. 重新学习FPGA(一):EDA技术
  11. 你程序员,996这就是你的命
  12. 打通现实世界,工程师通过DeFi一天内完成抵押借贷偿还房屋贷款
  13. oppor15可以升级鸿蒙,关于OPPO R15你不能不知道的八大升级
  14. 红蓝对抗之常见网络安全事件研判、了解网络安全设备、Webshell入侵检测
  15. 万字长文,详述TRIDENT: Poseidon 哈希算法的硬件加速与实现!
  16. Long类型转Integer
  17. 数据结构一元多项式的相加-单链表实现
  18. linux 下串口编程VTIME和VMIN的设置(转)
  19. 小学计算机教案 认识鼠标,认识鼠标》
  20. 西南交通大学计算机考研备考经验、报录比、真题

热门文章

  1. javaScript知识点大全
  2. BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
  3. phpwind管理权限泄露漏洞
  4. 基于Ajax的Web框架Echo2 2.0发布
  5. jdbc mysql 自动重连_Mysql中JDBC如何完成自动重连机制的案例
  6. svn检出图标不会发生改变_SVN系列操作(二)svn不显示图标的解决方法
  7. java好还是python好-Python和Java哪个薪资更高、远景更好?
  8. python编程电子书下载-python编程初学者指南
  9. python装饰器作用-python 装饰器
  10. 小白学python买什么书-终于明白小白学习python怎么学