美文网首页
leetcode 402 移掉k位数字

leetcode 402 移掉k位数字

作者: DFlatMajor | 来源:发表于2020-12-02 17:17 被阅读0次

总结:和单调队列一样,遇到一个数满足弹栈,要弹出前面所有满足条件的元素。

class Solution {

public:

    string removeKdigits(string num, int k) {

        //单调递增栈

        vector<char> stk;

        string res;

        for(auto &dig: num){

            while(stk.size() !=0 && k && dig < stk.back()){    //弹栈用while,多弹满足的都弹直到单调增,后面的元素控制前面的元素。

                stk.pop_back();  //如果当前的比前面的小,前面的就不要了

                k--;

            }

            stk.push_back(dig);

        }

        for (; k > 0; --k) {

            stk.pop_back();

        }

        for(auto &dig:stk){

            if(res.size() == 0 && dig == '0'){

                continue;

            }

          res += dig;

        }

        return res == "" ? "0" : res;

    }

};

相关文章

  • 力扣每日一题:402.移掉K位数字

    402.移掉K位数字 https://leetcode-cn.com/problems/remove-k-digi...

  • leetcode 402 移掉k位数字

    总结:和单调队列一样,遇到一个数满足弹栈,要弹出前面所有满足条件的元素。 classSolution{ publi...

  • LeetCode 402 移掉K位数字

    1.题目 https://leetcode-cn.com/problems/remove-k-digits/ 2....

  • LeetCode 402. 移掉K位数字

    题目描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的...

  • 402. 移掉K位数字

    题目: 402. 移掉K位数字 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字...

  • 402. 移掉K位数字

    题目描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num...

  • 402. 移掉K位数字

    移除K位数字 题目地址 想法一:动态规划 String num代表了输入的数字。 A.思路: 当处理第n位上的数字...

  • T402、移掉K位数字

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 ...

  • 算法总览

    1.动态规划 1.leetcode 402:移除k位数字2.leetcode 935骑士拨号器3.leetcode...

  • 栈-N402-移掉K位数字

    题目 概述:给定一个自然数字符串,要求从中移掉K个数,使得剩下的字符所组成的自然数最小 输入:自然数字符串,长度范...

网友评论

      本文标题:leetcode 402 移掉k位数字

      本文链接:https://www.haomeiwen.com/subject/dcjuwktx.html