Binary Watch思路:贪心算法,本来写的而是递归,然后栈溢出了,改成循环了。
GitHub地址:https://github.com/corpsepiges/leetcode
public class Solution {
public String removeKdigits(String num, int k) {
if (num.length()==k) {
return "0";
}
int first=0;
while (k>0) {
int index=num.length()-1;
for (int i = first; i < num.length()-1; i++) {
if (num.charAt(i)>num.charAt(i+1)) {
index=i;
break;
}
}
if (index==num.length()-1) {
num=num.substring(0,num.length()-k);
k=0;
}else{
num=num.substring(0,index)+num.substring(index+1, num.length());
k--;
if (index>0) {
first=index-1;
}else{
first=0;
}
}
}
int zero=0;
for (int i = 0; i < num.length()-1; i++) {
if (num.charAt(i)!='0') {
zero=i;
break;
}
}
return num.substring(zero,num.length());
}
}
本文介绍了一种移除整数中k个数字以获得最小数值的算法实现。通过使用贪心策略,该方法能够在O(n)的时间复杂度内完成。文章提供了完整的Java代码示例,并解释了如何有效地处理各种边界情况。
348

被折叠的 条评论
为什么被折叠?



