LeetCode p402 Remove K Digits 题解
1.题目:
Given a non-negative integer num represented as a string, remove k digits from the number so that the new number is the smallest possible.
Note:
The length of num is less than 10002 and will be ≥ k.
The given num does not contain any leading zero.
Example 1:
Input: num = “1432219”, k = 3
Output: “1219”
Explanation: Remove the three digits 4, 3, and 2 to form the new number 1219 which is the smallest.
Example 2:
Input: num = “10200”, k = 1
Output: “200”
Explanation: Remove the leading 1 and the number is 200. Note that the output must not contain leading zeroes.
Example 3:
Input: num = “10”, k = 2
Output: “0”
Explanation: Remove all the digits from the number and it is left with nothing which is 0.
题意:
输入一个数字的字符串,和K,移除K个数字之后使得到的字符串表示的数字最小,输出这个最小的数字。
2.解题思路:
将每个数与它前面的数进行比较,如果比前面的数大就将前面的数移除。
比如897321 K=3
则移除顺序为 8 9 比较 不移除进位
9 7 比较 9 移除 退位
8 7 比较 8 移除 无法退位
7 3 比较 3 移除 退出循环
3.代码
1 |
|