代码随想录算法训练营day45

embedded/2024/9/24 6:21:24/

70. 爬楼梯 (进阶)

五部曲:

  • dp数组下标及含义:爬到有i个台阶的楼顶,有dp[i]种方法
  • dp数组初始化:dp[0]=1
  • 递推公式:dp[i] += dp[i - j]
  • 遍历方向:target放在外循环,将nums放在内循环。内循环需要从前向后遍历。
#include <iostream>
#include <vector>
using namespace std;
int main() {int n, m;while (cin >> n >> m) {vector<int> dp(n + 1, 0);dp[0] = 1;for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (i - j >= 0) dp[i] += dp[i - j];}}cout << dp[n] << endl;}
}

322. 零钱兑换

五部曲:

  • dp数组下标及含义:凑足总额为j所需钱币的最少个数为dp[j]
  • dp数组初始化:dp[0]=0
  • 递推公式:dp[j] = min(dp[j - coins[i]] + 1, dp[j]);
  • 遍历方向:先遍历物品再遍历背包。
class Solution {
public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount + 1, INT_MAX);dp[0] = 0;for (int i = 0; i < coins.size(); i++) {for (int j = coins[i]; j <= amount; j++) {if (dp[j - coins[i]] != INT_MAX) {dp[j] = min(dp[j - coins[i]] + 1, dp[j]);}}}if (dp[amount] == INT_MAX)return -1;return dp[amount];}
};

279.完全平方数

五部曲:

  • dp数组下标及含义:和为j的完全平方数的最少数量为dp[j]
  • dp数组初始化:dp[0]=0
  • 递推公式:dp[j] = min(dp[j - i * i] + 1, dp[j]);
  • 遍历方向:先遍历物品再遍历背包。
class Solution {
public:int numSquares(int n) {vector<int> dp(n + 1, INT_MAX);dp[0] = 0;for (int i = 0; i <= n; i++) {         for (int j = 1; j * j <= i; j++) { dp[i] = min(dp[i - j * j] + 1, dp[i]);}}return dp[n];}
};

http://www.ppmy.cn/embedded/10765.html

相关文章

微信小程序开发五(与springboot整合)

首先在微信开发者工具中开启不校验合法域名&#xff0c;这个才能本地访问 实现一个小功能&#xff1a; 展示数据信息&#xff0c;每条数据的颜色不一样 后端&#xff1a;springbootmybatisplusmysql 依赖&#xff1a; <dependency><groupId>com.baomidou</grou…

Spark Standalone模式部署

准备至少2台虚拟机&#xff0c;装好linux系统&#xff0c;我装的是Ubuntu20.04。 1.修改主机名&#xff08;每台&#xff09; 1&#xff09;修改/etc/hostsname内容&#xff0c;主节点改为master&#xff0c;子节点改为slaver1 sudo vim /etc/hostname 2&#xff09;在/etc/…

在ELF 1开发环境中使用Qt Creator进行远程调试

Qt Creator是一款跨平台集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要适用于支持Qt框架的各类应用程序开发。其内置的远程调试机制使得开发者能够在本地开发环境中对部署在远程设备上的代码进行调试&#xff0c;无需直接对远程设备进行操作。Qt Creator会通过网络连…

【大语言模型】如何让ChatGPT等LLM拥有记忆

我们现在在跟ChatGPT等生成式人工智能聊天时&#xff0c;都需要我们给定一个上下文&#xff0c;生成式AI才会根据我们问题结合上下文给出回答&#xff0c;他们并没有任何记忆。想象一下未来我们有一个AI机器人在我们的身边&#xff0c;每天它的记忆都会归零&#xff0c;你必须跟…

【机器学习300问】76、早停法(Early Stopping)是如何防止过拟合的?

本文带大家介绍一个非常简单的防止过拟合的方法——早停&#xff08;Early Stopping&#xff09;&#xff0c;首先给出概念&#xff0c;然后通过损失图像来加深对它的理解。 一、早停是什么呀&#xff1f; 早停&#xff08;Early Stopping&#xff09;是一种常用的深度学习模型…

stm32开发之netxduo组件之mqtt客户端的使用记录

前言 1使用mqtt协议的简单示例记录 代码 MQTT服务端(C# 编写,使用MQTTnet提供的示例代码) 主程序 namespace ConsoleApp1;public class Program {public static async Task Main(string[] args){await Run_Server_With_Logging();}}public static async Task Run_Server_Wi…

uniapp微信小程序(商城项目)

最近&#xff0c;闲来无事&#xff0c;打算学一下uniapp小程序 于是在跟着某站上学着做了一个小程序&#xff0c;主要是为了学uniapp和vue。某站黑马优购 完成的功能主要有&#xff1a;首页、搜索、分类和购物车。 有人问了为什么没有登录、和添加订单呢&#xff1f;问的很好…

Unity3D 分块编辑小AStar地图详解

前言 A算法是一种经典的寻路算法&#xff0c;能够帮助游戏中的角色找到最短路径。在本文中&#xff0c;我们将介绍如何在Unity3D中使用分块编辑的方式创建一个小的A地图&#xff0c;并实现A*算法来实现角色的寻路。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希…