
动态规划
我是大龙啊
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n, 打印出S的所有可能的值出现的概率
把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n, 打印出S的所有可能的值出现的概率。 1.穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕 。 这里我们可以统计n个骰子朝上一面的点数和s的个数f(s),则其概率r(s)=f(s)/pow(6, n): /*统计骰子点数和的组合数*/ v...转载 2019-03-29 10:56:09 · 1064 阅读 · 0 评论 -
分数背包
现在有m件物品,小偷有个最大承重为n的背包,单独的一件物品可拆分,求最后的可得的最大重量。 2.首先计算每个商品的单位价值,遵循贪心策略,小偷首先尽量多地拿走单位价值最高的商品,若该商品已经全部拿走而背包未满,将在剩余的商品中选择单位价值最高的拿走,以此类推,若剩余空间不够选择的商品全部拿走,则将剩余空间全部装上该商品的等重部分(即把该商品拿走与背包空间刚好相同的重量)。 Step1:首先计算每件...原创 2019-01-16 10:26:27 · 686 阅读 · 0 评论 -
魔法深渊
题目描述 前几个月放映的头号玩家简直火得不能再火了,作为一个探索终极AI的研究人员,月神自然去看了此神剧。 由于太过兴奋,晚上月神做了一个奇怪的梦,月神梦见自己掉入了一个被施放了魔法的深渊,月神想要爬上此深渊。 已知深渊有N层台阶构成(1 <= N <= 1000),并且每次月神仅可往上爬2的整数次幂个台阶(1、2、4、…),请你编程告诉月神,月神有多少种方法爬出深渊 输入描述: 输入...原创 2019-08-08 16:02:21 · 589 阅读 · 0 评论 -
最长回文子串--动态规划(O(N^2))
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例 1: 输入: “babad” 输出: “bab” 注意: "aba"也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 回文串的定义我就不啰嗦了。对于这道题,我的第一反应是用动态规划方法解。 假设字符串s的长度为length,建立一个length*length的矩阵dp。 dp[i][...原创 2019-08-09 16:43:40 · 173 阅读 · 0 评论 -
最少数量货物装箱问题
题目描述 有重量分别为3,5,7公斤的三种货物,和一个载重量为X公斤的箱子(不考虑体积等其它因素,只计算重量) 需要向箱子内装满X公斤的货物,要求使用的货物个数尽可能少(三种货物数量无限) 输入描述: 输入箱子载重量X(1 <= X <= 10000),一个整数。 输出描述: 如果无法装满,输出 -1。 如果可以装满,输出使用货物的总个数。 示例1 输入 4 输出 -1 说明 无法装满...原创 2019-08-14 16:51:11 · 1816 阅读 · 0 评论 -
最大递增子序列
【题目】: 给定数组arr,返回arr的最长递增子序列。 【例子】: arr=[10,22,9,33,21,50,41,60,80],返回的最长递增子序列为[10,22,33,41,60,80]长度为6 思路:动态规划 dp[i]为以下标为i的元素结尾的子数组的长度。开始将dp所有元素初始化为1。 为得到dp[i],需向前遍历,找到比a[i]小而且使dp[i]最大的那个数。 /* . 生成长度为N...原创 2019-08-16 10:59:17 · 1514 阅读 · 0 评论