贪心算法javascript
依题意,咱们要删除k位数字使得最后这个数值最小,其实不难发现,1432(去掉1位数字最小是132),1432(去掉2位数字最小是12),1432(去掉3位数字最小是1),那么这里面的规律是什么呢?java
很显然,就是前一个数比后一个数大就会去除掉,所以,能够开始了。git
固然,不能忽略细节web
var removeKdigits = function(num, k) { let stack = []; if (num.length == k) return "0"; for (let val of num) { while (k && stack.length && stack[stack.length - 1] > val) { stack.pop(); k--; } stack.push(val); } let res = stack.join(''); if (res == 0) return "0"; while (stack[0] == 0) { stack.shift() } return stack.join('').substring(0, stack.length - k); };
知乎:叄贰壹算法
简书:带只拖鞋去流浪svg
关注我,带你一块儿写bugspa
warning :未经受权,不得转载code
有问题的小伙伴请在下方留言,喜欢就点个赞吧xml