[小米OJ] 9. 移除 K 位得到最小值

Posted ruoh3kou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[小米OJ] 9. 移除 K 位得到最小值相关的知识,希望对你有一定的参考价值。

思路:

重复k次:

  1.找到并且删除第一个 num[i] > num[i+1] 的第i位数字。

  2.若删除过程中,序列变成递增序列,则直接删除最后一位。

注意除去字符串头的0

def solution(line):
    num, k = line.split(" ")
    for j in range(0, int(k)):
        flag = True
        for i in range(0, len(num)-1):
            if num[i] > num[i+1]:
                flag = False
                num = num[:i]+num[i+1:]
                break
        if flag:
            num = num[0:len(num)-1]
    while len(num)>0 and num[0] == 0:
        num = num[1:]
    if len(num) == 0:
        return 0
    return num

 

以上是关于[小米OJ] 9. 移除 K 位得到最小值的主要内容,如果未能解决你的问题,请参考以下文章

力扣OJ(601-800)

九度oj 题目1397:查找数段

算法46----移除K位数字

LeetCode402移除K位数字

小米oj 反向位整数

2017.12.27 算法分析 贪心算法删除数字求最小值问题