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

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

题目如下
在这里插入图片描述

数据范围
在这里插入图片描述

显然本题可以使用动态规划
令f(i,j)为投掷i次骰子走到j处的方法数
则f(i,j) = f(i - 1,j - 1) + f(i,j - 2) + ..... + f(i,j - k)
所以可以利用一个二维数组计算来转移。
但是由于每次计算都只会用到上一行的数据,
所以可以利用滚动数组的思想从后往前更新减少空间复杂度。

通过代码

class Solution {
public:
    int numRollsToTarget(int n, int k, int target) {
        if (n * k < target)
            return 0;
        if (n * k == target)
            return 1;
        if(n == 1)return 1;
        vector<int> dp(target + 1,0);
        for(int i = 1;i <= min(k,target);i++)dp[i] = 1;    
        int mod = 1e9 + 7;
        
        for (int i = 1; i < n; i++) {
            for (int j = target; j >= 1; j--) {
                dp[j] = 0;
                for (int l = 1; l <= k; l++) {
                    if (j > l) {
                        dp[j] = (dp[j] + dp[j - l]) % mod;
                    }
                }
            }
        }
        return dp[target];
    }
};

在这里插入图片描述

相关文章:

  • AIGC训练效率与模型优化的深入探讨
  • redis的缓存击穿,雪崩,穿透
  • 大模型微调解读及参数设置实践示例
  • Python 正则表达式的非捕获组介绍
  • 亲测Windows部署Ollama+WebUI可视化
  • 2024年国赛高教杯数学建模A题板凳龙闹元宵解题全过程文档及程序
  • 在nodejs中使用ElasticSearch(二)核心概念,应用
  • 从面试中的“漏掉步骤”谈自我表达与思维方式的转变
  • 【设计模式】【创建型模式】工厂方法模式(Factory Methods)
  • LeetCodehot 力扣热题100
  • Qt5 C++ TcpSocket 如何判断是服务主动断开tcp socket连接?
  • Django 5实用指南(五)模板系统
  • 如何在 Mac 上安装并配置 JDK 环境变量
  • [AHOI2018初中组] 分组---贪心算法
  • 『ob』obsidian文件导出:使用Pandoc插件实现多格式转换
  • Leetcode63:不同路径 II
  • Oracle EBS 12.1和APEX 集成时 Apache的配置代理
  • OpenAI ChatGPT在心理治疗领域展现超凡同理心,通过图灵测试挑战人类专家
  • win 应用程序无法正常启动(0xc0000142)。请单击确定关闭应用程序
  • 使用Flink Operator部署Flink on k8s方案
  • 狄威已任国铁集团副总经理
  • 光明网评“泉州梦嘉商贸楼不到5年便成危楼”:监管是否尽职尽责?
  • 美国参议院投票通过戴维·珀杜出任美国驻华大使
  • 港交所与香港证监会就“中概股回流意向”已与部分相关企业进行接触
  • 专访|首夺天元头衔创生涯历史,王星昊打算一步一步慢慢来
  • 在循环往复的拍摄中,重新发现世界