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

注意:

num 的长度小于 10002 且 ≥ k。
num 不会包含任何前导零。
示例 1 :

输入: num = “1432219”, k = 3
输出: “1219”
解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。

代码

class Solution {public String removeKdigits(String num, int k) {StringBuilder stringBuilder=new StringBuilder();int n=num.length();if(k>=n) return "0";int target=n-k-1;int pre=0;//记录上个选择数字的位置for(int i=0;i<n-k;i++,target--){int loc=pre;for(int j=pre+1;j<=n-target-1;j++)//在可选择的范围内选择最小的数字if(num.charAt(j)<num.charAt(loc)){loc=j;}pre=loc+1;stringBuilder.append(num.charAt(loc));}while (stringBuilder.length()>1&&stringBuilder.charAt(0)=='0')//去除前导0stringBuilder.deleteCharAt(0);return stringBuilder.toString();}
}

leetcode 402. 移掉K位数字(贪心算法)相关推荐

  1. LeetCode 402. 移掉K位数字 中等难度

    402. 移掉K位数字 题目: 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导 ...

  2. Java实现 LeetCode 402 移掉K位数字

    402. 移掉K位数字 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示 ...

  3. LeetCode 402. 移掉K位数字(贪心,单调栈)

    1. 题目 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : ...

  4. C++算法学习(力扣:402. 移掉K位数字)

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

  5. 402. 移掉K位数字(单调栈)

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

  6. 402. 移掉K位数字 golang

    测试用例 示例 2 : 输入: num = "10200", k = 1 输出: "200" 解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何 ...

  7. 402.移掉K位数字,使得剩下数字最小

    思路 这道题让我们从一个字符串数字中删除 k 个数字,使得剩下的数最小.也就说,我们要保持原来的数字的相对位置不变. 以题目中的 num = 1432219, k = 3 为例,我们需要返回一个长度为 ...

  8. leetcode 402. Remove K Digits | 402. 移掉 K 位数字(单调栈)

    题目 https://leetcode.com/problems/remove-k-digits/ 题解 本题考察对问题的抽象能力,多写几个例子可以发现,这是一个单调栈问题,维护一个单调不减栈. cl ...

  9. LeetCode移掉k位数字(贪心算法)python

    描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. num的长度小于10002,且将≥k.给定的num不包含任何前导零. 您在真实的面试中是否遇到过这个题? ...

最新文章

  1. 针对测试行业,新人的一些建议:我适合做测试吗?
  2. window mobile 防止系统休眠代码
  3. 今日代码(20210313)--美赛代码记录
  4. 工作113:声明问题 的定义变量
  5. 676. 实现一个魔法字典
  6. android p 游戏调节器,游戏调节器(Game Tuner)
  7. JavaScript 运行机制详解:再谈Event Loop
  8. TimePickerDialog -下划线颜色修改
  9. 一些有价值的数值公式(游戏)
  10. dds文件怎么在linux查看,OpenDDS学习笔记(4):OpenDDS在Linux环境编译
  11. 英雄联盟服务器维护2月26,英雄联盟维护的时间是几点结束 lol维护公告2020最新...
  12. 小程序开发之全栈开发(一)
  13. 2018春招京东实习编程题解
  14. 经验总结1—数据核对
  15. 5年随访显示TNF拮抗剂治疗银屑病关节疗效持久
  16. 实战!Fortinet网络与安全融合应对多云挑战
  17. 动画演示15年来编程语言的起起伏伏
  18. win10子系统linux下cmake编译32位程序
  19. 数据结构课程设计---商品销售管理系统C/C++
  20. 视频教程-Excel高质量商务图表-Office/WPS

热门文章

  1. 管道的概念(匿名管道)
  2. 成功跳槽百度工资从15K涨到28K,威力加强版
  3. python cook读书笔记第2章字符串和文本
  4. Java面向对象(二)
  5. 02-c#基础之01-基础语法(一)
  6. pat 1123(AVL)
  7. 从 MVC 到前后端分离
  8. 在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样...
  9. jQuery Mobile 1.1 : 更流畅,更快捷,更实用
  10. 多迪技术总监揭秘:PHP为什么是世界上最好的语言?