训练营打卡Day45

文章目录

  • 训练营打卡Day45
    • 题105:[70. 爬楼梯](https://leetcode.cn/problems/climbing-stairs/)
      • 思路
      • 代码
    • 题106:[322. 零钱兑换](https://leetcode.cn/problems/coin-change/)
      • 思路
      • 代码
    • 题107:[279. 完全平方数](https://leetcode.cn/problems/perfect-squares/)
      • 思路
      • 代码

题105:70. 爬楼梯

思路

  • 定义了一个vector dp, 其中dp[i]表示爬到第i级台阶的方法数。初始化dp[0] = 1,表示到达第0级台阶的方法数为1。
  • 然后用两层循环,外层循环i遍历所有台阶,内层循环j遍历可能的走法(1级或2级),并累加到dp[i]中。
  • 最后返回 dp[n],即爬到第n级台阶的方法数。

代码

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

题106:322. 零钱兑换

思路

  • dp[i] 表示使用给定的硬币组成金额 i 时最少需要的硬币数。
  • 在第一个循环中,遍历给定的硬币种类,在第二个循环中,从当前硬币开始遍历 dp 数组,更新 dp[i] 的值。
  • 如果 dp[amount] 等于 INT_MAX,说明无法组成金额 amount,返回-1,否则返回 dp[amount]。

代码

class Solution {public:int coinChange(vector<int>& coins, int amount) {vector<int>dp(amount + 1, INT_MAX);dp[0] = 0;for(int j = 0; j < coins.size(); j++)for(int i = coins[j]; i < dp.size(); i++)if (dp[i - coins[j]] != INT_MAX)dp[i] = min(dp[i - coins[j]] + 1, dp[i]);if(dp[amount] == INT_MAX) return -1;return dp[amount];}
};

题107:279. 完全平方数

思路

  • dp[i] 表示使用完全平方数组成i最少需要的完全平方数数量。
  • 在第一个循环中,从 1 遍历到 sqrt(n),枚举所有不超过n的完全平方数。
  • 在第二个循环中,从 1 遍历到 n,更新 dp[i] 的值,如果 i 大于等于 jj,那么 dp[i] = min(dp[i], dp[i - jj]+1)。最后返回 dp[n]。

代码

class Solution {public:int numSquares(int n) {vector<int>dp(n+1, INT_MAX);dp[0] = 0;for(int j = 1; j*j <= n; j++)for(int i = 1; i <= n; i++)if(i >= j*j)dp[i] = min(dp[i], dp[i - j*j]+1);return dp[n];}
};

训练营打卡Day45相关推荐

  1. 训练营打卡Day57

    训练营打卡Day57 文章目录 训练营打卡Day57 题121:[1143. 最长公共子序列](https://leetcode.cn/problems/longest-common-subseque ...

  2. 阿里天池龙珠训练营打卡2

    阿里天池龙珠训练营打卡2 文章目录 列表添加元素 删除列表中的元素 获取列表的元素 列表的一些其他方法 字符串常用内置方法 字符串格式化 列表配合集合去重 列表添加元素 list.append(obj ...

  3. 孤尽训练营打卡日记day28--第四周总结

    前言 光阴似箭,日月如梭.转眼已经过去了一个月,孤尽训练营第四周也已经结束,今天我们一起来对这一周的内容做个简单回顾. 第一次课 单元测试和系统安全规约 什么是单元测试? 对软件组成单元进行的测试,其 ...

  4. 孤尽训练营打卡日记day14--第二周总结

    前言 光阴似箭,日月如梭!跟着孤尽老师学习的第二周也即将结束,训练营的日子也已经过去了一半.古人云,学而不思则罔,思而不学则殆.今天我们来对第二周的学习做个总结. 内容回顾 day08 首先,孤尽老师 ...

  5. 孤尽训练营打卡日记day24--系统安全规约

    前言 现在是大数据的时代,数据是非常重要的,一张照片就有可能泄漏了你的位置信息.在我们的系统中,安全一直是老生常谈的话题,怎么维护我们的系统安全,在我们日常开发中,怎么避免出现安全问题,我们跟着Joe ...

  6. 孤尽训练营打卡日记day04--MySQL优化

    前言 数据库在系统中是非常重要的一环,当数据量大的时候,数据库就会有瓶颈,也就是查询变慢,我们需要对数据库进行优化 建表时优化 Schema 和数据类型优化 整数 TinyInt,SmallInt,M ...

  7. Day17 训练营打卡

    110. 平衡二叉树 - 力扣(LeetCode) 俩递归方法 257. 二叉树的所有路径 - 力扣(LeetCode) StringBuilder && 往里插路径的特点 404. ...

  8. 孤尽训练营打卡日记day19--OAuth2基础

    前言 我们现在的系统架构都是微服务的架构,也就是说,一个完整的功能,是由后台多个工程一起完成的.那么就会有一个问题,明明是多个工程,但是我们只需要登录一次,这是怎么实现的呢?今天我们跟着刘雪松老师一起 ...

  9. 厚积薄发打卡Day75 :【MSUP】Java语言特性与设计模式(上)

    前言 在看狂神频道的时候偶然发现下图,感触颇深.特别在当今[程序 = 业务 + 框架]思想盛行的开发者中,夯实基础基础显得格外重要,因此开此专栏总结记录. 设计模式详解 设计模式的考察点,一般有2个: ...

最新文章

  1. 又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)
  2. ES cross cluster search跨集群查询
  3. 【SSH】——Hibernate三种状态之间的转化
  4. 2019.03.24 视图和静态读取
  5. feign 能干什么:
  6. EventLoop 与Channel 的关联
  7. 内核启动的汇编阶段——head.S文件
  8. 【转载】数据仓库的基本架构
  9. 大学物理复习笔记:机械振动基础
  10. 睡眠分期matlab代码,非接触式睡眠分期方法与流程
  11. Matlab实现Hermite插值多项式
  12. 广东将5G基站专项规划纳入各地国土空间规划
  13. 虚拟机超线程性能分析深入浅出
  14. pycharm 2018永久破解激活补丁 附安装教程
  15. 简明python指南(预览版)
  16. linux内核编程(hello world示例程序)
  17. 综述 | 最新双曲深度神经网络综述论文
  18. Cisco3560交换机密码恢复
  19. 1.1 Python 程序设计基本方法
  20. BASIC语言下载安装配置教程(超级简单!)

热门文章

  1. spark 内存管理
  2. 【财富空间】达利欧:一切解读都不及自己用16页ppt彻底讲清
  3. 计算机应用专业国家教学标准,计算机应用专业技能教学标准
  4. 用友t3服务器为空,用友t3服务器设置
  5. 视频剪辑教程,加速小技巧,录好的所有视频增速快进
  6. 秒杀抢券系统实现的注意事项
  7. Amap套件说明--kali
  8. React Native 入门实战视频教程(4 个视频)
  9. PCB设计:生成结构检视文件DXF、EMP、EMN
  10. java毕业设计延安市图书馆管理Mybatis+系统+数据库+调试部署