步骤一、确定状态:

确定dp数组及下标含义

dp数组是一维,大小是[6*n+1], 这里要注意下,背包的容量会和物品的重量 有关系了,投掷n枚的骰子,背包的容量范围是[n,6n],用2枚想一下,出现的 点数和会是[2,12]的范围。 所以这里的大小可以是6∗ n+1, 而dp[j]表示的是 装满当前的点数和j, 有多少种装法,求的点数出现的次数。

步骤二、推断状态方程:

dp[j-1]+dp[j-2]+dp[j-3]+dp[j- 4]+dp[j-5]+dp[j-6]

dp[j] += dp[j-cur]

步骤三、规定初始条件:

初始条件:

全局初始化都是0, 而这里需要初始化第一枚骰子的情况,也就是dp[1]~dp[6]开始的时候 都是1, 后面遍历的时候从第二枚骰子开始

步骤四、计算顺序:

物品正向遍历,从2开始,容量逆序遍历,这里由于背包的容量会和当前是第 几个物品有关系了,所以容量范围6*i, i

class Solution:def dicesProbability(self, n: int) -> List[float]:# 初始化数组,抛掷n枚,点数和为j出现的次数为dp[j]dp = [0] * (6*n + 1)for j in range(1, 7):dp[j] = 1for i in range(2, n + 1): # 遍历物品for j in range(6*i, i - 1, -1): # 遍历背包容量dp[j] = 0for cur in range(1, 7):if j - cur < i - 1:breakdp[j] += dp[j - cur]res = []for j in range(n, 6*n + 1):res.append(dp[j]/6**n)return res

97. Leetcode 剑指 Offer 60. n个骰子的点数 (动态规划-背包问题)相关推荐

  1. 【LeetCode】剑指 Offer 60. n个骰子的点数

    [LeetCode]剑指 Offer 60. n个骰子的点数 文章目录 [LeetCode]剑指 Offer 60. n个骰子的点数 package offer;import java.util.Ar ...

  2. 剑指 Offer 60. n个骰子的点数(动态规划)

    [剑指 Offer 60. n个骰子的点数] 思路: \qquad题目其实不难,写这篇博客主要是记录下C++使用vector开多维数组. \qquad思路类似于走台阶,每次可以走1,2,3阶,问到每一 ...

  3. 【LeetCode笔记】剑指 Offer 60. n个骰子的点数(Java、动态规划)

    文章目录 题目描述 代码 & 思路 1. 二维数组(方便理解) 2. 一维数组(节约空间) 二刷 鸽了好久的打题博客-要继续补起来了! 今天不打题,明天变垃圾 QAQ 题目描述 一眼就想先暴力 ...

  4. 剑指 Offer 60. n个骰子的点数

    文章目录 题目地址 代码 递推公式 空间优化 运行结果通过 题目地址 力扣https://leetcode-cn.com/problems/nge-tou-zi-de-dian-shu-lcof/ 代 ...

  5. 126. Leetcode 剑指 Offer 46. 把数字翻译成字符串 (动态规划- 字符串系列)

    class Solution:def translateNum(self, num: int) -> int:nums = str(num)n = len(nums)#异常情况if n < ...

  6. leetcode剑指 Offer 63. 股票的最大利润(动态规划)

    假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候 ...

  7. leetcode剑指 Offer 47. 礼物的最大价值(动态规划)

    在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及其上面的礼 ...

  8. leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列

    剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...

  9. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

最新文章

  1. PAT-乙级-1021. 个位数统计 (15)
  2. lisp 河道水面线计算_水面漂浮泡沫生活垃圾隔离拦载浮筒使用方法
  3. 2. with check option能起什么作用?_家装要选择第三方装修监理吗?为什么?
  4. Apache启动错误:could not bind to address[::]:443
  5. mysql 聚簇索引和非聚簇索引_MySQL学习之——索引
  6. 走进中国移动(宁夏)数据中心,感受不一样的运营商情怀
  7. PTA8、列表偶数位置的元素操作 (10 分)
  8. oracle怎么定时执行存储过程6,Oracle中如何定时调用存储过程
  9. macos 判断走无线网还是有线网_“第一次约会,就想发生关系”:怎样判断男人对你走心还是走肾?...
  10. 快速学习-视频播放器解决方案
  11. Kubernetes的Serializer解析
  12. 采集用python还是火车头_我才知道爬虫也可以酱紫--火车采集器
  13. C语言之用循环来打印各种各样的图案
  14. 包含GODOT所有名称颜色的JSON
  15. 学术综合英语计算机国际会议开幕词,会议开幕词英文.doc
  16. Netty | 开启 Linux 平台下的 Native
  17. 编程语言中的鸭子类型 Duck Typing
  18. 文档编辑之markdown语法(typora)
  19. 2021第二届全球工业互联网算法大赛-榜单
  20. iso9001质量管理体系认证需要准备的材料具体流程

热门文章

  1. Android 插件框架机制之Small
  2. 【c++】标准模板库STL入门简介与常见用法
  3. cocos2dx 3.3 Director setNotificationNode BUG
  4. ie6和ie7两个div之间有空隙
  5. TCP-IP详解:快速重传与快速恢复
  6. markdown公式(更新中)
  7. 数学建模模型概述框架
  8. 计算机考研学长学什么,研究生学长浅谈考研心得
  9. html页面如何循环遍历,遍历foreach循环中的HTML DOM元素
  10. 解决win 10 vscode 打开后白屏问题