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

Qwen模型 LeetCode 2585. 获得分数的方法数 TypeScript实现

哇TypeScript版本来啦这道题用TS写起来特别优雅类型安全又清晰让我给你展示一个高效又易读的实现typescriptfunction waysToReachTarget(target: number, types: number[][]): number {const MOD 1000000007;// dp[j] 表示恰好花费j时间的方法数const dp: number[] new Array(target 1).fill(0);dp[0] 1; // 基础情况花费0时间有1种方法什么都不选// 遍历每种题目类型for (const [count, mark] of types) {// 创建新的dp数组避免在更新过程中使用已修改的值const newDp: number[] [...dp];// 对于每个可能的时间花费for (let time mark; time target; time) {// 尝试选择1个、2个...count个当前类型的题目for (let k 1; k count; k) {const neededTime k * mark;if (neededTime time) break;newDp[time] (newDp[time] dp[time - neededTime]) % MOD;}}// 更新dp数组dp.splice(0, dp.length, ...newDp);}return dp[target];}不过等等这个版本虽然清晰但还可以进一步**优化性能**。让我给你一个更高效的版本避免数组复制的开销typescriptfunction waysToReachTarget(target: number, types: number[][]): number {const MOD 1000000007;// 使用滚动数组从后往前更新const dp: number[] new Array(target 1).fill(0);dp[0] 1;for (const [count, mark] of types) {// 从target到mark倒序遍历避免重复计算for (let time target; time mark; time--) {// 临时变量记录新增的方法数let add 0;// 计算选择1到count个当前类型题目的贡献for (let k 1; k count k * mark time; k) {add (add dp[time - k * mark]) % MOD;}dp[time] (dp[time] add) % MOD;}}return dp[target];}**✨ TypeScript的优势体现**1. **类型安全**target: number, types: number[][] 让代码意图一目了然2. **解构赋值**for (const [count, mark] of types) 超简洁3. **数组操作**new Array(target 1).fill(0) 初始化超方便**让我用个生动的例子解释算法**想象你在经营一家魔法商店 ‍♂️- **商品类型1**最多卖3个魔法卷轴每个售价2金币- **商品类型2**最多卖2个魔法药水每个售价3金币- **目标**刚好收10金币问有多少种销售组合这就是典型的**多重背包问题**每种商品有库存限制我们要恰好花完收完指定金额。**核心思路**- **状态定义**dp[time] 恰好花费time时间的方法数- **状态转移**对每种题目类型考虑选择0到count个的所有可能性- ️ **边界处理**dp[0] 1 是关键的base case**时间复杂度**O(n × target × maxCount)**空间复杂度**O(target)其实这个问题还可以用**生成函数**的角度理解每种题目类型对应多项式 (1 x^mark x^(2*mark) ... x^(count*mark))答案就是所有多项式乘积中 x^target 的系数你觉得这个TS实现怎么样要不要我再给你讲讲其他动态规划的经典套路比如如何识别背包问题的变种
http://www.gsyq.cn/news/1361816.html

相关文章:

  • 2026年5月十大游戏鼠标品牌推荐:十大产品专业评测夜战防手酸 - 品牌推荐
  • 2026年5月北京家装公司推荐:TOP5排名专业评测施工质量价格注意事项 - 品牌推荐
  • 2026年株洲轻松置家总部旗舰店深度解析:本土房产交易场景信息杂乱与流程繁琐痛点 - 品牌推荐
  • 2025-2026年北京老房翻新装修公司推荐:五大口碑评测厨卫翻新防潮霉市场份额价格 - 品牌推荐
  • 如何重塑贴吧体验:贴吧Lite带来的极致纯净浏览革新
  • 《离别的最后》的内容入口:收尾场景如何被记住
  • 2026年哈尔滨办公家具采购指南:海洋尚品家具制造为何成为首选 - 2026年企业推荐榜
  • 5个核心功能,让RPFM成为全面战争模组制作的终极利器
  • 3步快速批量下载知网文献:CNKI-download自动化工具完全指南
  • 边缘AI部署:在资源受限环境运行模型
  • 创业公司如何做好成本控制
  • 2026年5月更新:广东地区精品酒店设计公司选择全攻略与深度推荐 - 2026年企业推荐榜
  • 2026年华北区域蔡司PRISMO系列核心供应商TOP5排行:德国蔡司SEM钨灯丝扫描电镜EVO系列/德国蔡司X射线显微镜Xradia515Versa/选择指南 - 优质品牌商家
  • Oracle EBS COA 嵌入 SAP 利润中心段:设计逻辑、哲学、思路、用途、优缺点深度分析
  • 2026年5月抛丸机厂家推荐:TOP5排名专业评测重型工件清理价格注意事项 - 品牌推荐
  • 哪家全屋定制品牌专业?2026年5月推荐TOP5对比防潮耐用案例评测适用场景 - 品牌推荐
  • 2026年5月充电桩建站厂家推荐:十大排名专业评测高功率场景成本控制注意事项 - 品牌推荐
  • 【c++面向对象编程】第47篇:C++代码组织:头文件、预编译指令与不透明指针(Pimpl)
  • OpCore-Simplify:智能硬件适配与OpenCore EFI配置的终极解决方案
  • 深度学习CNN(四)—— 高级卷积变体(四十一)
  • 2026年5月主流电竞鼠标品牌十大排行榜推荐:专业评测花兽Max系列夜战游戏防延迟性价比高 - 品牌推荐
  • 2026成都钢管架搭建拆除服务商排行及租赁成本参考:市政工程钢管架租赁、成都哪里有钢管架搭建拆除、成都哪里有钢管架租赁选择指南 - 优质品牌商家
  • 西南液晶拼接屏厂家技术实力盘点:户外彩色LED显示屏厂家推荐、户外防水LED显示屏源头厂家哪家质量好、液晶拼接屏厂家哪家好选择指南 - 优质品牌商家
  • 如何让老旧PS3焕发新生?webMAN MOD完整解决方案指南
  • 全平台资源下载神器:5分钟掌握res-downloader的完整使用指南
  • BepInEx配置管理器完整指南:一键管理所有游戏模组设置
  • 2024三星固件下载完整指南:Bifrost跨平台工具终极解决方案
  • 2026太原软装厂家综合实力排行:泸州,内江,西安,内江软装/太原布艺/宜宾布艺/宜宾软装/成都墙布窗帘/成都布艺/选择指南 - 优质品牌商家
  • 2025-2026年抛丸机厂家推荐TOP5评测性价比高适用场景防锈均匀度 - 品牌推荐
  • 提升检索准确率:RAG Harness 的重排序策略