lintcode 删除数字
来源:互联网 发布:个人淘宝账号永久封号 编辑:程序博客网 时间:2024/06/03 16:15
lintcode 删除数字
给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。
找到删除 k 个数字之后的最小正整数。
N <= 240, k <= N
很普通的一个贪心法。
想选择一个前面对应位数的最小值,在之后这个值背后选择对应的最小值.
class Solution {public: string DeleteDigits(string A, int k) { int ResultSize = A.size() - k;if(ResultSize == 1)return A;int last = 0;//上一次的位置char NowMin = 0;string Result;for(int i = 0; i != ResultSize; i++){NowMin = '9'+1;for(int j = last; j != k+i+1; j++){if(A[j] < NowMin){NowMin = A[j];last = j + 1;}}if(NowMin != '0' || Result.size()==0)Result += NowMin;;}return Result; }};
F(a,b)是数组A的区间[[a,b]的最小值的位置。
那么有F(a,b)= min(F(i,b-1),A[b]),其中F(i,b-1)表示从a,一直到b-1范围内的所有F[i,b-1]的最小值,这样我们就可以利用填矩阵的方式,求出最小值的区间了
不过这个方法在这里并不适用,相比于这个问题,这个解答的时间复杂度太大了
0 0
- lintcode-删除数字-182
- lintcode 删除数字
- LintCode 182-删除数字
- LintCode :删除数字
- lintcode(182)删除数字
- LintCode 删除数字+贪心
- lintcode-- 删除数字
- 删除数字-LintCode
- LintCode-删除排序数组中的重复数字
- LintCode 删除排序数组中的重复数字
- lintcode ----删除排序数组中的重复数字
- LintCode:删除排序数组中的重复数字
- lintcode删除排序链表重复数字
- LintCode-删除排序数组中的重复数字
- 【LintCode】删除排序数组中的重复数字
- 删除排序数组中的重复数字-LintCode
- lintcode--删除排序数组中的重复数字
- Lintcode 删除排序数组中的重复数字
- Alogrithm_百元组合问题
- 顺序结构(数组)的堆栈
- storm中的ack机制
- Mac OS X 配置 Apache+Mysql+PHP 详细教程
- regexkitlite常用正则表达式
- lintcode 删除数字
- Android-Layout_weight属性解析(慕课网笔记)
- 链式结构的堆栈
- Java中 VO、 PO、 BO、 QO、DAO、POJO的概念
- Dijkstra 算法思想描述
- python装饰器的wraps作用
- ionic中应用sass
- Git管理修改
- mysql命令大全