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

代码随想录打卡—day45—【DP】— 8.29 完全背包应用

1 70. 爬楼梯(完全背包版)

70. 爬楼梯

完全背包+装满的选法+排列的套路,AC代码:

class Solution {
public:/*完全背包的思路:1 2是两个物体 可以无限取*/int dp[50]; // 能爬到第i楼的选法的排列数/*dp[j] += dp[j - i];dp[0] = 1for容积j++ for物体i++  排列+无限个模拟——n=3*/int climbStairs(int n) {dp[0] = 1;for(int j = 0; j <= n; j++)for(int i = 1; i <= 2; i++) //物体if(j >= i)dp[j] += dp[j - i];// for(int i = 1; i <= 2; i++)// {//      for(int j = 0; j <= n; j++)//         cout << tmp[i][j] << ' ';//     puts("");// }return dp[n];}
};

2 322. 零钱兑换

322. 零钱兑换

之前做过,直接看这篇

3 279. 完全平方数

279. 完全平方数

之前没学多重背包之前看到题目是蒙的,现在学完时候很自然就做出来了,AC代码:

class Solution {
public:int dp[10010];  // dp[1]表示 凑成i的完全平方数最少需要的数目/*转成完全背包物品:i = 1....sqrt(n)背包:ndp[j] = min(dp[j- i]+1,dp[j])装i   不撞idp[0] = 0 其他非0下标全设为INT_MAXi++j++模拟——*/int numSquares(int n) {dp[0] = 0;for(int j = 1; j <= n; j++)dp[j] = INT_MAX;for(int i = 1; i*i <= n; i++){for(int j = 0; j <= n; j++){if(j >= i*i)dp[j] = min(dp[j- i*i]+1,dp[j]);else dp[j] = dp[j];}// for(int j = 0; j <= n; j++) cout << dp[j] << ' ';// puts("");}return dp[n];}
};

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

相关文章:

  • 2023.8.28日论文阅读
  • HAproxy(四十七)
  • Java实战场景下的ElasticSearch
  • 拓世科技集团 | “书剑人生”李步云学术思想研讨会暨李步云先生九十华诞志庆
  • 前端须知名词解释
  • React性能优化之memo缓存函数
  • 2023年高教社杯 国赛数学建模思路 - 案例:ID3-决策树分类算法
  • C# Emgu.CV 条码检测
  • VueRouter的基本使用
  • 网工笔记:快速认识7类逻辑接口
  • MySQL中的free链表,flush链表,LRU链表
  • mac使用VsCode远程连接服务器总是自动断开并要求输入密码的解决办法
  • Python爬虫分布式架构 - Redis/RabbitMQ工作流程介绍
  • 【ES】笔记-集合介绍与API
  • Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【五】
  • 二、Tomcat 安装集
  • CentOS 上通过 NFS 挂载远程服务器硬盘
  • 微信小程序中的 广播监听事件
  • Quickstart: MinIO for Linux
  • Java中word转Pdf工具类
  • 【conda install】网络慢导致报错CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  • 2023-8-28 图中点的层次(树与图的广度优先遍历)
  • 设计模式(一)
  • Prometheus关于微服务的监控
  • CSS实现白天/夜晚模式切换
  • selenium实现输入数字字母验证码
  • Docker的运用
  • 在项目中快速搭建机器学习的流程
  • 计网-All
  • Rabbitmq的Federation Exchange