※ 引述《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