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

70. 爬楼梯 (进阶),322. 零钱兑换,279.完全平方数

代码随想录训练营第45天|70. 爬楼梯 (进阶,322. 零钱兑换,279.完全平方数

  • 70.爬楼梯
    • 文章
    • 思路
    • 代码
  • 322.零钱兑换
    • 文章
    • 思路
    • 代码
  • 279.完全平方数
    • 文章
    • 思路
    • 代码
  • 总结

70.爬楼梯

文章

代码随想录|0070.爬楼梯完全背包版本

思路

将楼梯长度视为背包容量,将一步的跨度视为物品价值,则可以转化为完全背包问题

代码

class Solution {public int climbStairs(int n) {int i, j;int[] dp = new int[n + 1];dp[0] = 1;for (j = 0; j < n + 1; ++j) {for (i = 0; i < 2; ++i) {if (j >= i + 1) {dp[j] += dp[j - i - 1];}}}return dp[n];}
}

322.零钱兑换

文章

代码随想录|0322.零钱兑换

思路

dp数组初始化全为正无穷
dp[0]单独设为0
外层遍历物品,内层遍历背包容积
d p [ j ] = M i n ( d p [ j ] , d p [ j − c o i n s [ i ] ] + 1 ) dp[j]=Min(dp[j], dp[j-coins[i]]+1) dp[j]=Min(dp[j],dp[jcoins[i]]+1)

代码

public class Solution {public int coinChange(int[] coins, int amount) {int max = amount + 1;int[] dp = new int[amount + 1];Arrays.fill(dp, max);dp[0] = 0;for (int i = 1; i <= amount; i++) {for (int j = 0; j < coins.length; j++) {if (coins[j] <= i) {dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1);}}}return dp[amount] > amount ? -1 : dp[amount];}
}

279.完全平方数

文章

代码随想录|0279.完全平方数

思路

n为背包容量,i^2为物品价值,单个物品最大价值为sqrt(n)
d p [ j ] = M i n ( d p [ j ] , d p [ j − i 2 ] + 1 ) dp[j]=Min(dp[j],dp[j-i^2]+1) dp[j]=Min(dp[j],dp[ji2]+1)

代码

class Solution {public int numSquares(int n) {int i, j;int[] dp = new int[n + 1];Arrays.fill(dp, n);dp[0] = 0;int upper = (int) Math.sqrt(n);for (i = 1; i <= upper; ++i) {for (j = 1; j < n + 1; ++j) {if (j >= i * i) {dp[j] = Math.min(dp[j], dp[j - i * i] + 1);}}}return dp[n];}
}

总结

二刷,还是会出错
牢牢记住,求组合数外层物品内层背包

http://www.lryc.cn/news/162944.html

相关文章:

  • Apache Doris 2.0 如何实现导入性能提升 2-8 倍
  • RabbitMQ: topic 结构
  • 信息系统项目管理教程(第4版):第二章 信息技术及其发展
  • 有哪些适合初学者的编程语言?
  • uni-app动态tabBar,根据不同用户展示不同的tabBar
  • 手写Spring:第6章-资源加载器解析文件注册对象
  • Redis 7 第八讲 集群模式(cluster)架构篇
  • 【PowerQuery】导入与加载XML
  • vue 预览视频
  • 4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒!(文末送书)
  • 【无标题】@Scheduled 的cron
  • IP和MAC的作用区别
  • python趣味编程-数独游戏
  • MySQL/MariaDB 查询某个 / 多个字段重复数据
  • 【力扣每日一题】2023.9.10 课程表Ⅱ
  • VSCODE CMAKE C++ 工程调试, C++不以科学计数法输出并控制小数位数
  • Drools规则引擎入门学习记录
  • 肖sir__设计测试用例方法之判定表06_(黑盒测试)
  • <图像处理> 空间滤波基础
  • 如何在Django中使用django-crontab启动定时任务、关闭任务以及关闭指定任务
  • mysql配置项整理
  • 【KRouter】一个简单且轻量级的Kotlin Routing框架
  • 时间管理类书籍阅读笔记
  • CSS文字居中对齐学习
  • 《论文阅读》CARE:通过条件图生成的共情回复因果关系推理 EMNLP 2022
  • React 开发一个移动端项目(1)
  • c#查看代码的执行耗时( Stopwatch )
  • Python网络爬虫库:轻松提取网页数据的利器
  • YOLOv5算法改进(15)— 更换Neck之AFPN
  • Vue2项目练手——通用后台管理项目第七节