漫画:删去k个数字后的最小值

作者:微信小助手

发布时间:2018-11-12T08:44:37


本期封面作者:蒲公英





—————  第二天  —————







什么意思呢?让我们举几个栗子:


给定整数1593212,删去3个数字,新整数的最小情况是1212




给定整数30200,删去1个数字,新整数的最小情况是200




给定整数10,删去2个数字,新整数的最小情况是0




需要注意的是,给定的整数大小可以超过long类型的范围,所以需要用字符串来表示。













————————————









我们来举一个栗子:


给定整数 541270936,要求删去一个数,让剩下的整数尽可能小。


此时,无论删除哪一个数字,最后的结果都是从9位整数变成8位整数。既然同样是8位整数,我们显然应该优先把高位的数字降低,这样对新整数的值影响最大。





如何把高位的数字降低呢?很简单,我们把原整数的所有数字从左到右进行比较,如果发现某一位的数字大于它右面的数字,那么在删除该数字后,必然会使得该数位的值降低,因为右面比它小的数字顶替了它的位置。


在咱们这个例子中,数字5右侧的数字4小于5,所以删除数字5,最高位数字降低成了4。















 
  1. /**

  2. * 删除整数的k个数字,获得删除后的最小值