摘要: 接下来看一个动态规划的经典问题:0-1背包问题 问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 这个问题确实是要困难一些,首先这个状态就不是很好确定,由于个额外的条件,背包容量有限,所以要兼顾考虑两个因 阅读全文
posted @ 2017-12-11 21:54 messi2017 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 要求: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n) 思路分析: 这个问题是一个典型的贪心算法的问题,限制于O(n)的时间复杂度,也就是只能用一次循环,所以一般的动态规划模型不经过优化很 阅读全文
posted @ 2017-12-11 21:39 messi2017 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 最近开始学习动态规划,写个小题训练下: 假设有 1 元,3 元,5 元的硬币若干(无限),现在需要凑出 11 元,问如何组合才能使硬币的数量最少? 这个确实是最最基本的动态规划问题,注意这里我们不用贪心算法来解决,所以必须要引入状态和状态转移方程。 这个题的状态其实很简单,就是要凑出 i 元使用的最 阅读全文
posted @ 2017-12-11 19:07 messi2017 阅读(885) 评论(0) 推荐(0) 编辑
摘要: 题目描述 由于第m个台阶上有好吃的薯条,所以薯片现在要爬一段m阶的楼梯. 薯片每步最多能爬k个阶梯,但是每到了第i个台阶,薯片身上的糖果都会掉落ai个,现在问你薯片至少得掉多少糖果才能得到薯条? 输入 多组数据输入,每组数据第一行输入两个数字m(1<m<=1000),k(1<=k<m),接下来有m行 阅读全文
posted @ 2017-12-11 18:42 messi2017 阅读(273) 评论(0) 推荐(0) 编辑