※ 引述《JIWP (神楽めあ的钱包)》之铭言:
: 402. Remove K Digits
: 有一个array nums,里面的元素都是非负数
: 现在要移除k个元素
: 请回传再移除k个元素后最小的值
: 思路:
: 用一个stack储存元素
: 当遇到nums[i]比目前stack最后的元素还小的时候
: 就把stack[len(stack)-1]Pop出来
: 一直重复这个动作,直到stack最后一个元素比nums[i]还小或是已经POP出k个元素
: 接着把nums[i] push到stack
: 就这样扫过一次nums
: 接着如果还没pop出k个元素就从stack的尾端继续pop出来
: 记得要把stack前面的0给删掉
: golang code:
: func removeKdigits(num string, k int) string {
: stack := []byte{}
: idx:=0
: for idx<len(num){
: for len(stack)>0 && num[idx]<stack[len(stack)-1] && k>0{
: stack=stack[:len(stack)-1]
: k