java代码实现贪心算法删除数字问题
来源:互联网 发布:淘宝信誉刷钻平台 编辑:程序博客网 时间:2024/05/12 00:51
/*题目:
键盘输入一个高精度的正整数n(<=240位),
去掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。
编程对给定的n和s,寻找一种方案,使得剩下的数最小。
Simple Input
178543
4
Simple Output
13
思路:
每一步总是选择一个使剩下的数最小的数字删除,即按高位到低位的顺序搜索,
若各位数字递增,则删除最后一个数字;否则删除第一个递减区间的首字符,
这样删一位便形成了一个新的数字串。然后回到串首,按上述规则再删除下一个数字
*/
import java.io.InputStream;
import java.util.Scanner;
public class RemoveNumBits {
public static int Delete(int a, int k) {
StringBuffer sb = new StringBuffer(a+ “” ); //把A转换成字符串
int i, j;
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) {
boolean flag = true;
while(flag){
Scanner input = new Scanner(System.in);//从键盘逐个输入,显示逐个结果;
int in1 = input.nextInt();
int in2 = input.nextInt();
if( in1<=0 || in2<=0)
{
flag = false;
break;
}
int out = Delete(in1, in2);
System.out.println(out);
} }
}
控制台显示:
765421
3
421
16835
2
135
- java代码实现贪心算法删除数字问题
- Java贪心算法 删数字问题
- 最简单的贪心算法--删除数字问题
- 用贪心算法背包问题,Java实现
- JAVA贪心算法实现背包问题
- 算法java实现--贪心算法--单源最短路径问题--Dijkstra算法
- Java实现-删除数字
- Java实现-删除数字
- 贪心算法java实现
- 算法Java实现--贪心算法--活动安排问题
- 算法java实现--贪心算法--最优装载问题
- 算法java实现--贪心算法--多机调度问题
- 用贪心算法实现的背包问题(java语言)
- 用贪心算法解背包问题Java实现
- 一个java写的贪心算法实现删数问题
- LintCode 删除数字+贪心
- 贪心算法-排队问题-JAVA
- 算法java实现--贪心算法--最小生成树问题--Prim算法
- 让Android项目健壮的几个建议
- 从今天起让自己做一条每天都有梦想的咸鱼
- 对大数据信息挖掘、分析的浅显认识
- 将drawable设置到imageview里
- 利用Jquery对动态元素进行操作
- java代码实现贪心算法删除数字问题
- AutoLayout代码中修改约束遇到的坑
- leetcode -- Insertion Sort List -- 重点,需要优化
- 使用Jprofiler远程监控Tongweb应用服务器
- 今天看到一篇文章,觉得甚有道理
- php一些小知识点总结
- SqlServer发送邮件
- hdu1171Big Event in HDU(母函数)
- html5监听屏幕旋转