博客
关于我
LeetCode No402.移掉K位数字
阅读量:360 次
发布时间:2019-03-04

本文共 961 字,大约阅读时间需要 3 分钟。

题目描述

在这里插入图片描述

解法:单调栈

在这里插入图片描述
解题思路:永远保持stack是单调递增的状态,只要还有删除的机会

class Solution {       public String removeKdigits(String num, int k) {           LinkedList<Character> stack = new LinkedList<>();   //栈        int remain = k;   //剩余的丢弃次数        char[] cs = num.toCharArray();  //num的char数组        for (char c : cs) {               while (remain > 0 && !stack.isEmpty() && stack.getLast() > c) {                   --remain;                stack.removeLast();            }            stack.add(c);        }        //如果还有remain,删除后面        while (remain > 0) {               stack.removeLast();            --remain;        }        //忽略前导0        while (!stack.isEmpty() && stack.getFirst() == '0') {               stack.removeFirst();        }        //为空的情况,直接返回0        if (stack.isEmpty()) {               return "0";        }        StringBuilder sb = new StringBuilder();        for (Character c : stack) {               sb.append(c);        }        return sb.toString();    }}

转载地址:http://royg.baihongyu.com/

你可能感兴趣的文章
关于Altium Designer 09导出BOM表不能正确分类问题
查看>>
Oracle 11G环境配置
查看>>
【Spark】(六)Spark 运行流程
查看>>
【Python】(十二)IO 文件处理
查看>>
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
查看>>
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
查看>>
Java8新特性——并行流与顺序流
查看>>
如何通过 Dataphin 构建数据中台新增100万用户?
查看>>
C语言的数值溢出问题(上)
查看>>
BottomNavigationView控件item多于3个时文字不显示
查看>>
函数指针的典型应用-计算函数的定积分(矩形法思想)
查看>>
8051单片机(STC89C52)八个LED灯闪烁
查看>>
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
查看>>
8051单片机(STC89C52)实现可修改初值(并可命令启停)的单倒计时器(Version1.1)
查看>>
用 wxPython 打印你的 App
查看>>
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
查看>>
Linux下安装MySql过程
查看>>
原生vue实现VantUI中IndexBar索引导航栏功能
查看>>
android:使用audiotrack 类播放wav文件
查看>>
vue通过better-scroll 封装自定义的下拉刷新组件
查看>>