题目链接:402. Remove K Digits
题目大意:给你一个数(用字符串表示),从这个数中最多删除k个数位,要使得删除后的数字最小
题目思路:本质上我们需要维护一个单调上升的序列,例如41,我们会删除掉4而不是1,因为如果前面的数大于后面的数,那么我们宁愿删掉前面的数,以保证结果更小,所以我们实际上需要做的就是维护一个单调上升的栈,碰到一个数则删掉栈内比当前元素大的,只不过限定了k的个数而已,具体看代码
时间复杂度&&空间复杂度:O(n)&&O(n)(n为数字长度)
题目链接:402. Remove K Digits
题目大意:给你一个数(用字符串表示),从这个数中最多删除k个数位,要使得删除后的数字最小
题目思路:本质上我们需要维护一个单调上升的序列,例如41,我们会删除掉4而不是1,因为如果前面的数大于后面的数,那么我们宁愿删掉前面的数,以保证结果更小,所以我们实际上需要做的就是维护一个单调上升的栈,碰到一个数则删掉栈内比当前元素大的,只不过限定了k的个数而已,具体看代码
时间复杂度&&空间复杂度:O(n)&&O(n)(n为数字长度)
java map循环中remove
【LeetCode】39. 组合总和
【LeetCode】705. 设计哈希集合
问题描述:已知一个使用字符串表示的非负整数num,将num中的k个数
给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M