随笔分类 - Dynamic Programming
摘要:[抄题]: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay the cost, you can either climb one or two st
        阅读全文
                
摘要:[抄题]: 在一个二维01矩阵中找到全为1的最大正方形 返回 4 [暴力解法]: 时间分析: 空间分析:i j 中保留一排,用指针数组来优化空间存储 [思维问题]: [一句话思路]: 棋盘类dp也是用扩展,不过是从右下角开始扩展 最大扩展中的最小值,没见过 [输入量]:空: 正常情况:特大:特小:程
        阅读全文
                
摘要:[抄题]: 假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。 给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在
        阅读全文
                
摘要:[抄题]: 给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。(洗牌) 比如 s1 = "aabcc" s2 = "dbbca" - 当 s3 = "aadbbcbcac",返回 true. - 当 s3 = "aadbbbaccc", 返回 false. [思维问题]: [一句话
        阅读全文
                
摘要:[抄题]: 给出字符串S和字符串T,计算S的不同的子序列中T出现的个数。 子序列字符串是原始字符串通过删除一些(或零个)产生的一个新的字符串,并且对剩下的字符的相对位置没有影响。(比如,“ACE”是“ABCDE”的子序列字符串,而“AEC”不是)。 Here is an example:S = "r
        阅读全文
                
摘要:[抄题]: 给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。 你总共三种操作方法: 插入一个字符 删除一个字符 替换一个字符 [思维问题]: [一句话思路]: 分析双序列变换的所有情况 [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(
        阅读全文
                
摘要:[抄题]: 给定一个字符串s,将s分割成一些子串,使每个子串都是回文。 返回s符合要求的的最少分割次数。 [思维问题]: 不知道要用预处理字符串降低复杂度 [一句话思路]: 先把预处理获得s中回文串的结果放在数组中,之后直接调用 [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情
        阅读全文
                
摘要:[抄题]: 给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。 s = "lintcode" dict = ["lint","code"] 返回 true 因为"lintcode"可以被空格切分成"lint code" [思维问题]: 看到字符串就怕:还是要掌
        阅读全文
                
摘要:[抄题]: 往上走台阶 最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。 最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。 最长上升子序列问题是在一个无序的给定
        阅读全文
                
摘要:跳跃游戏 1 [抄题]: [思维问题]: [一句话思路]: [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: [一刷]: [二刷]: [三刷]: [四刷]: [五刷]: [五分钟肉眼debug的结果]: [总结]: [复杂度]:Time c
        阅读全文
                
摘要:[抄题]: 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? [思维问题]: [一句话思路]: 生兔子问题:把大数赋给小数 [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: [一刷]:
        阅读全文
                
摘要:[抄题]: 有一个机器人的位于一个 m × n 个网格左上角。 机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。 问有多少条不同的路径? [思维问题]: 以为要用count来计数:不是,初始化sum[][]二维数组,初始化数组的具体值来计数 [一句话思路]: 思考哪些方案应该初始
        阅读全文
                
摘要:[抄题]: 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 [思维问题]: [一句话思路]: 和数字三角形基本相同 [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: [一刷]: [二刷]: [三刷]: 
        阅读全文
                
摘要:从上到下用DP。 [抄题]: 给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。 比如,给出下列数字三角形: 从顶到底部的最小路径和为11 ( 2 + 3 + 5 + 1 = 11)。 [思维问题]: 不知道要初始化,把距离定义好。 [一句话思路]: [输入量]
        阅读全文
                
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号