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

【算法题】2400. 恰好移动 k 步到达某一位置的方法数目

题目:

给你两个 正 整数 startPos 和 endPos 。最初,你站在 无限 数轴上位置 startPos 处。在一步移动中,你可以向左或者向右移动一个位置。

给你一个正整数 k ,返回从 startPos 出发、恰好 移动 k 步并到达 endPos 的 不同 方法数目。由于答案可能会很大,返回对 109 + 7 取余 的结果。

如果所执行移动的顺序不完全相同,则认为两种方法不同。

注意:数轴包含负整数。

示例 1:

输入:startPos = 1, endPos = 2, k = 3
输出:3
解释:存在 3 种从 1 到 2 且恰好移动 3 步的方法:

  • 1 -> 2 -> 3 -> 2.
  • 1 -> 2 -> 1 -> 2.
  • 1 -> 0 -> 1 -> 2.
    可以证明不存在其他方法,所以返回 3 。
    示例 2:

输入:startPos = 2, endPos = 5, k = 10
输出:0
解释:不存在从 2 到 5 且恰好移动 10 步的方法。

提示:

1 <= startPos, endPos, k <= 1000

思路:

动态规划,因为要考虑负数,再考虑k的范围,整体加上1000,dp[i+1000][j]表示到达位置i,花费j步的方案数。

java代码:

class Solution {int mod = (int) 1E9 + 7;public int numberOfWays(int startPos, int endPos, int k) {long[][] dp = new long[3005][1005];dp[startPos + 1 + 1000][1] = 1;dp[startPos - 1 + 1000][1] = 1;for (int i = 2; i <= k; i++) {for (int j = 1000 + startPos - k; j <= 1000 + startPos + k; j++) {dp[j][i] = dp[j - 1][i - 1] + dp[j + 1][i - 1];dp[j][i] %= mod;}}return (int) dp[1000 + endPos][k];}
}
http://www.lryc.cn/news/62093.html

相关文章:

  • 探索【Stable-Diffusion WEBUI】的插件:骨骼姿态(OpenPose)
  • MySQL数据落盘原理(redo、undo、binlog、2PC、double write等。)
  • 智加科技+舍弗勒,首发量产正向开发的智能重卡冗余转向
  • C++类的模拟实现
  • 耐腐蚀高速电动针阀在半导体硅片清洗机化学药液流量控制中的应用
  • 助力工业物联网,工业大数据之ODS层及DWD层建表语法【七】
  • Windows环境下C++ 安装OpenSSL库 源码编译及使用(VS2019)
  • TensorFlow高阶API和低阶API
  • 强训之【参数解析和跳石板】
  • Redis队列Stream、Redis多线程详解(三)
  • MySQL统计函数count详解
  • 实验04:图像压缩(DP算法)
  • 4.19--面试系列之真题版本--redis出现大key怎么解决?Redis 大 Key 对持久化有什么影响?
  • 新手在家做自媒体要如何起步?
  • 易基因:禾本科植物群落的病毒组丰度/组成与人为管理/植物多样性变化的相关性 | 宏病毒组
  • 华为OD机试——对称美学(通过率只有8.51%???)
  • 【三十天精通Vue 3】第十六天 Vue 3 的虚拟 DOM 原理详解
  • Arduino ESP8266通过udp获取时间以及同步本地时间方法
  • c/c++:char*定义常量字符串,strcmp()函数,strcpy()函数,寻找指定字符,字符串去空格
  • 2023年6月DAMA-CDGA/CDGP数据治理认证考试可报名地区公布
  • UDS的0x19服务介绍
  • QinQ技术与Portal技术
  • Vue-自定义表单验证(rule,value,callback)详细使用
  • 港联证券|TMT板块全线退潮,这些个股获主力逆市抢筹
  • WPF学习
  • C#使用WebDriver模拟浏览器操作WEB页面
  • 正则表达式 - 简单模式匹配
  • 银行数字化转型导师坚鹏:银行数字化转型培训方案
  • 多维时序 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多变量时间序列预测
  • Shell知识点(一)