97. Leetcode 剑指 Offer 60. n个骰子的点数 (动态规划-背包问题)
步骤一、确定状态:
确定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个骰子的点数 (动态规划-背包问题)相关推荐
- 【LeetCode】剑指 Offer 60. n个骰子的点数
[LeetCode]剑指 Offer 60. n个骰子的点数 文章目录 [LeetCode]剑指 Offer 60. n个骰子的点数 package offer;import java.util.Ar ...
- 剑指 Offer 60. n个骰子的点数(动态规划)
[剑指 Offer 60. n个骰子的点数] 思路: \qquad题目其实不难,写这篇博客主要是记录下C++使用vector开多维数组. \qquad思路类似于走台阶,每次可以走1,2,3阶,问到每一 ...
- 【LeetCode笔记】剑指 Offer 60. n个骰子的点数(Java、动态规划)
文章目录 题目描述 代码 & 思路 1. 二维数组(方便理解) 2. 一维数组(节约空间) 二刷 鸽了好久的打题博客-要继续补起来了! 今天不打题,明天变垃圾 QAQ 题目描述 一眼就想先暴力 ...
- 剑指 Offer 60. n个骰子的点数
文章目录 题目地址 代码 递推公式 空间优化 运行结果通过 题目地址 力扣https://leetcode-cn.com/problems/nge-tou-zi-de-dian-shu-lcof/ 代 ...
- 126. Leetcode 剑指 Offer 46. 把数字翻译成字符串 (动态规划- 字符串系列)
class Solution:def translateNum(self, num: int) -> int:nums = str(num)n = len(nums)#异常情况if n < ...
- leetcode剑指 Offer 63. 股票的最大利润(动态规划)
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候 ...
- leetcode剑指 Offer 47. 礼物的最大价值(动态规划)
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及其上面的礼 ...
- leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列
剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...
- 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /** * Definition for a binary tree no ...
最新文章
- PAT-乙级-1021. 个位数统计 (15)
- lisp 河道水面线计算_水面漂浮泡沫生活垃圾隔离拦载浮筒使用方法
- 2. with check option能起什么作用?_家装要选择第三方装修监理吗?为什么?
- Apache启动错误:could not bind to address[::]:443
- mysql 聚簇索引和非聚簇索引_MySQL学习之——索引
- 走进中国移动(宁夏)数据中心,感受不一样的运营商情怀
- PTA8、列表偶数位置的元素操作 (10 分)
- oracle怎么定时执行存储过程6,Oracle中如何定时调用存储过程
- macos 判断走无线网还是有线网_“第一次约会,就想发生关系”:怎样判断男人对你走心还是走肾?...
- 快速学习-视频播放器解决方案
- Kubernetes的Serializer解析
- 采集用python还是火车头_我才知道爬虫也可以酱紫--火车采集器
- C语言之用循环来打印各种各样的图案
- 包含GODOT所有名称颜色的JSON
- 学术综合英语计算机国际会议开幕词,会议开幕词英文.doc
- Netty | 开启 Linux 平台下的 Native
- 编程语言中的鸭子类型 Duck Typing
- 文档编辑之markdown语法(typora)
- 2021第二届全球工业互联网算法大赛-榜单
- iso9001质量管理体系认证需要准备的材料具体流程