动态规划(dp)算法
文章平均质量分 59
动态规划算法总结,配实例讲解。
HUST_Miao
这个作者很懒,什么都没留下…
展开
-
Maximum Subarray(最大子序列和)
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。1.思路:初始化dp[0] = nums[0],dp[i] = max{dp[i] + nums[i] , nums[i]}, max(dp[i]...原创 2018-09-13 15:02:39 · 1945 阅读 · 0 评论 -
硬币拼凑指定面额的动态规划算法
拼凑钱币题目来源:美团点评2017秋招笔试题题目描述:给你六种面额1、5、10、20、50、100元的纸币,假设每种币值的数量都足够多,编写程序求组成N员(N为0-10000的非负整数)的不同组合的个数。输入描述:输入为一个数字N,即需要拼凑的面额输出描述:输出也是一个数字,为组成N的组合个数。示例1输入5输出2解题思路:这个题的思路是动态规划的算法思路...转载 2018-09-06 18:01:44 · 6807 阅读 · 0 评论 -
Ch2 完全背包问题
题目 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路 这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或者不取两种,而是有取0件、取1件、取2件......直至取[V/Ci...转载 2018-05-16 14:08:26 · 156 阅读 · 0 评论 -
Ch1 0 1背包问题及其实例详解
题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}这个方程...原创 2018-05-10 22:29:43 · 1397 阅读 · 0 评论