LeetCode—402. Remove K Digits

Binary Watch思路:贪心算法,本来写的而是递归,然后栈溢出了,改成循环了。


GitHub地址:https://github.com/corpsepiges/leetcode

点此进入如果可以的话,请点一下star,谢谢。



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());
    }
}


你可能感兴趣的:(leetcode)