博客
关于我
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/

你可能感兴趣的文章
对PostgreSQL数据库结构的宏观理解
查看>>
Postgresql 日期和时间类型
查看>>
xmin、xmax、cmin、cmax
查看>>
《卸甲笔记》-PostgreSQL和Oracle的数据类型的对比系列五:其它类型
查看>>
查询某表格上次进行vacuum的时间
查看>>
Failed to execute vcredist_x64.exe
查看>>
invalid byte sequence for encoding
查看>>
Centos7.0系统上使用yum安装相关包时出现KeyboardInterrupt错误
查看>>
Highgo Database故障收集脚本
查看>>
PostgreSQL中的隐式连接和显式连接
查看>>
failed to initialize the database
查看>>
Failed to execute vcredist_x64.exe
查看>>
invalid byte sequence for encoding
查看>>
银河麒麟系统配置apt网络源
查看>>
Linux内核结构粗解及关于 shell 通俗理解
查看>>
第七周 4.12-4.18
查看>>
程序设计入门14 结构体
查看>>
程序设计基础75 tips 广度搜索细节问题
查看>>
笨办法学python之数据类型
查看>>
笨办法学Python之将对象名的字符串类型,转化成相应对象
查看>>