LeetCode 402 移掉K位數字

2021-10-10 17:38:19 字數 1278 閱讀 1102

從左往右找到乙個num[i]>[i+1]的num[i]且num[i]!=0,若沒有找到

//說明該陣列為非遞減序列,將最後k個去除即可

for(

int i =

0; i < k; i++)}

list.

remove

(index)

;//若去除的數字為第乙個且該數字後緊跟著0,則把0去掉

for(

int j =

0; j < list.

size()

; j++

)else

}//若列表已空直接返回0

if(list.

size()

==0)}

//從list中取出數字拼湊結果

string result ="";

for(

int i =

0; i < list.

size()

; i++

)return result;

}}

//遍歷每乙個數字, 找出滿足num[i]>deque.last的num[i], 並將num[i]放入佇列

//若不滿足, 則將佇列最後乙個元素移除, 再將num[i]放入佇列

public

static string removekdigits

(string num,

int k)

deque.

offerlast

(chars[i]);

}//若k不為0, 則此時佇列中已是不遞減序列, 將還沒移除的k個數字從佇列尾中移除

for(

int i =

0; i < k; i++

)//從不為0的數字開始拼湊結果

stringbuilder result =

newstringbuilder()

;boolean flag =

false

;while

(!deque.

isempty()

)if(flag)

}return result.

length()

>

0? result.

tostring()

:"0"

;}

leetcode402移掉K位數

給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 num 的長度小於 10002 且 k。num 不會包含任何前導零。示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。思路...

LeetCode 402 移掉K位數字

給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 num 的長度小於 10002 且 k。num 不會包含任何前導零。示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。示例...

LeetCode 402 移掉K位數字

題目鏈結 題目描述 給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 示例 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。輸入 num 10200 k 1 輸出 200 解釋 移...