题意:给定一个非负整数n, 现在最多可以移除k位, 使得剩下的数字尽可能小并输出,前导零最终要舍去,全部移除则输出0
我也很无语自己这么无耻地写了一个待写。但的确觉得这道题很好,告诫自己一定要写一次这个代码。
分析,就是贪心,遇到降的序列,就把那个大的去掉。如1243,去掉4,若到最后就去掉最后一个。
证明:类似数学归纳吧。若相邻两个,选择一个不去掉,那一定不去小的,因为两个数无论去掉哪一个,剩下那一个占的是同一位,那么留下小的可以使数更小,从前两位开始,若出现前一位比后一位大,那这个数一定是备选项了。然后若出现多个备选项,去越高位数变得越小。
得证。