從左往右找到乙個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 解釋 移...