(Java实现) 删数问题
删数问题(需知道的数学定理)
给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。
定理: ex:1 2 3 9 5;删掉一个数;
从第一个数开始遍历,到寻找到单调递减的第一个数(即单调递增的最后一个数),则删除,若无单调递减子序列,则删掉最后一个非递减序列的数;每找到一个就又从头开始。即每做一次删数,就是一次贪心选择,删掉此数剩下的数为组成最小,经过证明,此结论正确。
ex:1 2 3 9 5,删掉三个数;
1:1 2 3 5
2:1 2 3
3:1 2
注意一种情况:3 0 0 2,删去一个数;
应该是2,而不是002
Input
第 1 行是1 个正整数 a。第 2 行是正整数k。
Output
输出最小数
Sample Input
178543
4
Sample Output
13
import java.util.Scanner;
public class shanshuwenti2 {
	 public static int Delete(int a,int k)
	    {
	        StringBuffer sb=new StringBuffer(a+"");//把a转化为字符串
	        int i=0,j=0;
	        for(i=0;i<k;i++)
	        {
	            /*
	            * 若各位数字递增,则删除最后一个数否则删除第一个减区间的数*/
	            for(j=0;j<sb.length()-1&&sb.charAt(j)<=sb.charAt(j+1);j++)
	            {
	            }
	            sb.delete(j,j+1);
	        }
	        return sb.length()==0?0:Integer.parseInt(sb.toString());
	    }
	    public static void main(String[] args)
	    {
	            Scanner in=new Scanner(System.in);
	            int a=in.nextInt();
	            int b=in.nextInt();
	            if(a<=0||b<=0)
	                System.exit(0);
	            System.out.println(Delete(a,b));
	    }
}
												
											(Java实现) 删数问题的更多相关文章
- Java中的数是用补码表示的检验
		
一.基本介绍(关于下列五个定义来自http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html#!comments,谢原 ...
 - codevs4096 删数问题
		
题目描述 Description 键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N 和S,寻找一种方案使得剩下的数字组成的新数最小. 输入 ...
 - 1145: 零起点学算法52——数组中删数II
		
1145: 零起点学算法52--数组中删数II Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 293 ...
 - 删数方案数(regex)
		
[题目描述] 给出一个正整数序列 a,长度为 n,cyb 不喜欢完美,他要删掉一些数(也可以不删,即删掉0个),但是他不会乱删,他希望删去以后,能将 a 分成 2 个集合,使得两个非空集合的数的和相同 ...
 - [BJOI2019]删数(线段树)
		
[BJOI2019]删数(线段树) 题面 洛谷 题解 按照值域我们把每个数的出现次数画成一根根的柱子,然后把柱子向左推导,\([1,n]\)中未被覆盖的区间长度就是答案. 于是问题变成了单点修改值,即 ...
 - 【洛谷p1106】删数问题
		
(洛谷t2755暂时过不去了) 删数问题[传送门] 洛谷算法标签: emmmm……删数问题又牵扯到了字符串.因为毕竟高精度的数240位呢!要是输入一个整型,要码240行来求出每一位……怕是还没求出来就 ...
 - ACM 删数问题 SDUT 2072
		
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2072.html 删数问题 Time Limit ...
 - 【Java】PS-查看Java进程-线程数
		
PS-查看Java进程-线程数 ps 线程 个数_百度搜索 查看进程的线程数命令 - CSDN博客 java命令行运行jar里的main类 - coderland - 博客园
 - 删数问题(NOI94)
		
删数问题(NOI94) 输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数.编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小.输出新的正整数.(N不超 ...
 
随机推荐
- ubuntu 1604升级到ubuntu 1804无法忽视的细节问题(亲测有效)
			
升级ubuntu系统,遇到很多问题,可能你在升级的时候也会碰到,希望对你有所帮助: 文章目录 1 常规升级过程 2 更改过源 3 无法全部更新 4 其他的问题 5 升级成功 6 无法进入gnome 6 ...
 - SORM框架01
			
架构图 Query接口:负责查询(对外提供的核心服务类) QueryFactory类:负责根据配置信息创建Query对象 TypeConvertor接口:类型转换 TableContext类:负责获取 ...
 - 使用 python 进行 面部合成
			
完整代码已上传至GitHub: https://github.com/chestnut-egg/Face 一. 准备工作 1. 此程序使用的是 Face++ 的API,所以需要去Face++官网注册账 ...
 - 2018-06-19 Javascript 基础2
			
js变量类型测试:typeof()->五种 (number,string,boolean,object,undefined): instanceof->检查某个对象是否是某个构造器产生的 ...
 - Spring全家桶之springMVC(四)
			
路径变量PathVariable PathVariable Controller除了可以接收表单提交的数据之外,还可以获取url中携带的变量,即路径变量,此时需要使用@PathVariable ...
 - SpringCloud Netflix (五) : Hystrix 服务熔断和服务降级
			
什么是Hystrix 在分布式环境中,许多服务依赖项中的一些服务依赖不可避免地会失败.Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助您控制这些分布式服务之间的交互.Hystrix通过隔离服务 ...
 - 解决yum 问题
			
Dependencies Resolved Traceback (most recent call last): File "/usr/bin/yum", line 29, in ...
 - vue父子组件之间相互传值
			
1. 子组件使用父组件方法,并向父组件传值 子组件代码 <template> <div class="menu"> <div class=" ...
 - 「雕爷学编程」Arduino动手做(31)——ISD1820语音模块
			
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
 - React:form
			
表单控件: input 文档在介绍控件之前,先提到了react组件自身的一个特点:状态由state掌控,改变组件状态只能用setState方法. 而在html的表单里,input.radio.chec ...