摘要: 用 integer.MIN_VALUE 来替代 根据当前背包能否用的上来求递推式, 结果是求m最大时的最大值, 因此要不断更新容量为j 时的最大值, 并更新全局最大值 阅读全文
posted @ 2017-08-05 23:46 apanda009 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 动态规划重点在于找到:维护量,递推式。维护量通过递推式递推,最后往往能得到想要的结果 先说说维护量,res[i][j]表示用s1的前i个字符和s2的前j个字符能不能按照规则表示出s3的前i+j个字符,如此最后结果就是res[s1.length()][s2.length()],判断是否为真即可。接下来 阅读全文
posted @ 2017-08-05 21:56 apanda009 阅读(132) 评论(0) 推荐(0) 编辑
摘要: res[i][j]表示Edit Distance between X数组的前i个元素以及Y数组的前j个元素,或者the minimum # of operations to convert X前i个元素 into Y的前j个元素 因为对于Xi 和 Yj,操作无非是 insert, delete, r 阅读全文
posted @ 2017-08-05 20:45 apanda009 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 状态方程时题意的转化, 通常要if, 遍历到当前状态时, 最后一个字母的情况与上一个或者上多个状态的关系 结果是最后的状态还是只是遍历到最后的状态求全局最优 如Longest Increasing Subsequence 阅读全文
posted @ 2017-08-05 18:19 apanda009 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 巧用 Integer.MAX_VALUE;来替换 true 阅读全文
posted @ 2017-08-05 17:52 apanda009 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 初始化, if 判断不同的状态 阅读全文
posted @ 2017-08-05 17:37 apanda009 阅读(120) 评论(0) 推荐(0) 编辑
摘要: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? Have you met this question in a... 阅读全文
posted @ 2017-08-05 17:29 apanda009 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 矩阵的题常构造新的矩阵转化为题意, 简单的记忆化存储, 常用dfs的分治策略自底向下回溯, 找一条最小的最合适的路径 递归出口(出范围, 遍历过, 满足题意(到节点) ) , 递归条件(对邻居的判断, 遍历过, 出范围, 邻居), 返回值常用分治法(后序) 尾递归,递的时候是用的上面的值, 回的时候 阅读全文
posted @ 2017-08-05 14:27 apanda009 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 8/5 根据局部问题求全局变量问题( 遍历到n, n 也是最后一个), Longest Increasing Subsequence 能且最大最小的问题: //function for (int i = 1; i < A.length; i++) { can[i] = Integer.MAX_VAL 阅读全文
posted @ 2017-08-05 14:24 apanda009 阅读(184) 评论(0) 推荐(0) 编辑
摘要: BFS 1. matrix 邻居都是找好的, 但是此题是八邻居问题 2. visited 数组是防止邻居重叠遍历的问题和重复加入的问题, 而此题需要遍历所有的邻居 但是此题再往队列加的时候判断是否为'E', 并且将其转化为'B' 3. and all of its adjacent unreveal 阅读全文
posted @ 2017-08-05 10:22 apanda009 阅读(218) 评论(0) 推荐(0) 编辑