作者:微信小助手
发布时间:2018-11-12T08:44:37
本期封面作者:蒲公英
————— 第二天 —————
什么意思呢?让我们举几个栗子:
给定整数1593212,删去3个数字,新整数的最小情况是1212
给定整数30200,删去1个数字,新整数的最小情况是200
给定整数10,删去2个数字,新整数的最小情况是0
需要注意的是,给定的整数大小可以超过long类型的范围,所以需要用字符串来表示。
————————————
我们来举一个栗子:
给定整数 541270936,要求删去一个数,让剩下的整数尽可能小。
此时,无论删除哪一个数字,最后的结果都是从9位整数变成8位整数。既然同样是8位整数,我们显然应该优先把高位的数字降低,这样对新整数的值影响最大。
如何把高位的数字降低呢?很简单,我们把原整数的所有数字从左到右进行比较,如果发现某一位的数字大于它右面的数字,那么在删除该数字后,必然会使得该数位的值降低,因为右面比它小的数字顶替了它的位置。
在咱们这个例子中,数字5右侧的数字4小于5,所以删除数字5,最高位数字降低成了4。
/**
* 删除整数的k个数字,获得删除后的最小值