算法、动态规划法
袁钰琦
这个作者很懒,什么都没留下…
展开
-
装箱问题——搜索法、动态规划法
问题描述: 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入格式 第一行为一个整数,表示箱子容量; 第二行为一个整数,表示有n个物品; 接下来n行,每行一个整数表示这n个物品的各自体积。 输出格式 一个整数,表示箱子剩余空间。 样例输入 24 6 8...原创 2020-02-29 12:54:09 · 425 阅读 · 0 评论 -
算法笔记——动态规划法
一道关于动态规划法的题。 矩阵中最长的连续1线段 : 一个矩阵中的元素只由0和1组成,对于给定的矩阵,试求矩阵中最长的连续1线段 ,方向可以是横向的、竖向的、斜向的。 public int longestLine(int[][] M) { if(M.length==0)return 0; int[][][] dp=new int[M.length][M[0].length][4]; ...原创 2020-02-21 09:59:17 · 163 阅读 · 0 评论 -
算法笔记——动态规划法
这是一道比较有趣的动态规划法的题。 给定一个字符串s和一个String列表wordDict,判断字符串是否可以由列表中的元素组成。 dp[i]的含义即字符串截取(0,j)是否可以由列表中的元素组成,由此迭代至最终的整个字符串。 情况一:如果字符串截取(0,j-1)本身是列表的一个元素,则dp[j]=true 情况二:如果字符串截取(0,j)由列表中的两个元素组成,假设分别是(0,i-1)和(i,...原创 2020-02-20 23:03:49 · 166 阅读 · 0 评论 -
算法笔记——动态规划法
动态规划法常常适用于有重叠子问题和最优子结构性质的问题,在重复子问题的数目关于输入的规模呈指数增长时特别有用。 动态规划法的本质其实就是试图仅仅解决每个子问题一次,具有天然剪枝的功能,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。即每个问题只管好他的子问题呈现的结果,而至于它是怎么来的则全然不管。重点是查表,表的设计决定着算法的好坏。 最...原创 2020-02-20 20:41:39 · 286 阅读 · 0 评论