当前位置: 首页 > news >正文

佛山网红打卡地网站seo搜索引擎优化怎么做

佛山网红打卡地,网站seo搜索引擎优化怎么做,信息查询网,php网站cms文章目录 Tag题目来源题目解读解题思路方法一:动态规划 写在最后 Tag 【动态规划】【数组】 题目来源 1155. 掷骰子等于目标和的方法数 题目解读 你手里有 n 个一样的骰子,每个骰子都有 k 个面,分别标号 1 到 n。给定三个整数 n&#xff0…

文章目录

  • Tag
  • 题目来源
  • 题目解读
  • 解题思路
    • 方法一:动态规划
  • 写在最后

Tag

【动态规划】【数组】


题目来源

1155. 掷骰子等于目标和的方法数


题目解读

你手里有 n 个一样的骰子,每个骰子都有 k 个面,分别标号 1n。给定三个整数 nktarget,返回这个 n 个骰子正面朝上的数字组成 target 的所有方案数。答案可能很大,返回对 1 e 9 + 7 1e9+7 1e9+7 取模后的值。


解题思路

方法一:动态规划

我们可以使用动态来解决本题。

状态

f[i][j] 表示使用 i 个骰子且数字和为 j 的方案数。

转移关系

我们可以枚举最后一个骰子的数字,数字的范围在 [1, k],使用 i 个骰子组成的数字和为 j 的方案数为:

f [ i , j ] = ∑ x = 1 k f [ i − 1 ] [ j − k ] f\left[ i,j \right] =\sum_{x=1}^k{f\left[ i-1 \right] \left[ j-k \right]} f[i,j]=x=1kf[i1][jk]

base case

f[0][0] = 1,计即我们还没有掷骰子,数字之和为 0 时的方案数。

最终返回

最终返回 f[n][target],表示使用 n 个骰子正面朝上的数字组成 target 的所有方案数

实现代码

class Solution {
public:int numRollsToTarget(int n, int k, int target) {if (target < n || target > n * k) {return 0;}const int MOD = 1e9 + 7;vector<vector<int>> f(n+1, vector<int>(target+1));f[0][0] = 1;for (int i = 1; i <= n; ++i) {for (int j = 0; j <= target; ++j) {for (int x = 1; x <= k; ++x) {if (j - x >= 0) {f[i][j] = (f[i][j] + f[i-1][j-x]) % MOD;}}}}return f[n][target];}
};

优化

注意观察状态转移方程,f[i][j] 只会从 f[i-1, ...] 转移过来,因此只需要存储第 i 行和第 i-1 行的值,使用两个一维数组代替二维数组进行转态转移。

class Solution {
public:int numRollsToTarget(int n, int k, int target) {if (target < n || target > n * k) {return 0;}const int MOD = 1e9 + 7;vector<int> f(target + 1);f[0] = 1;for (int i = 1; i <= n; ++i) {vector<int> g(target + 1);for (int j = 0; j <= target; ++j) {for (int x = 1; x <= k; ++x) {if (j - x >= 0) {g[j] = (g[j] + f[j-x]) % MOD;}}}f = g;}return f[target];}
};

复杂度分析

时间复杂度: O ( n ⋅ k ⋅ t a r g e t ) O(n \cdot k \cdot target) O(nktarget)

空间复杂度: O ( n ⋅ t r a g e t ) O(n \cdot traget) O(ntraget),优化后的空间复杂度为 O ( t a r g e t ) O(target) O(target)


写在最后

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。

最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 👍 哦。

http://www.zhongyajixie.com/news/1770.html

相关文章:

  • 怎么做p2p网站成人企业管理培训课程
  • 福州网站seo推广优化百度搜索网页
  • 日本建设网站产品软文是什么
  • 公司注册信息查询seo网站推广批发
  • 昆明做一个公司网站多少费用企业营销策划方案
  • 有没有做外贸的网站啊引流推广营销
  • 用ps做美食网站互联网营销
  • 郑州虚拟货币网站开发百度科技有限公司
  • 适合做网站的图片有道搜索
  • 网站建设与维护 技能cps推广平台
  • 平板电脑可以做淘宝网站吗快速整站排名seo教程
  • 外贸自己做网站线上销售平台都有哪些
  • 沈阳公司做网站的竞价网站推广
  • web开发兼职网站开发怎么建自己的网站?
  • 建设网站的需要学习哪些课程seo优化人员
  • 大连 网站制作做网站哪个公司最好
  • 网上哪里给公司做网站国内设计公司前十名
  • 小说网站排名怎么做百度快速收录入口
  • 酒业网站建设百度搜索推广方法
  • 女装网站设计方案公众号微博seo
  • 网站做分屏好不好如何做市场调研和分析
  • 新网站建设的工作总结搜索量用什么工具查询
  • 网站的标题如何在百度推广自己的产品
  • 大连网站建设信息新闻头条今日要闻国内
  • 教做糕点的网站抖音关键词优化排名靠前
  • 实战课程_网站标准布局divcss及整站建设武汉seo搜索优化
  • js做网站登录界面软文推广策划方案
  • 花都区建设局网站cpm广告联盟平台
  • 微信网站开放浙江企业seo推广
  • 开淘宝的店铺网站怎么做seo三人行论坛