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

专门做图片是网站零基础学电脑培训班

专门做图片是网站,零基础学电脑培训班,怎么给自己的公司做网站,软件开发工程师绩效考核文章目录 70.爬楼梯(进阶版)⭐️322. 零钱兑换思路CPP代码总结 279.完全平方数思路CPP代码 70.爬楼梯(进阶版) 卡码网:57. 爬楼梯 文章讲解:70.爬楼梯(进阶版) 本题就是典型了完全背包排列问题,…

文章目录

  • 70.爬楼梯(进阶版)
  • ⭐️322. 零钱兑换
    • 思路
    • CPP代码
    • 总结
  • 279.完全平方数
    • 思路
    • CPP代码

70.爬楼梯(进阶版)

卡码网:57. 爬楼梯

文章讲解:70.爬楼梯(进阶版)
本题就是典型了完全背包排列问题,也没有什么绕弯,比较简单

#include <bits/stdc++.h>
using namespace std;int main () {int m, n;cin >> n >> m;std::vector<int> dp(n + 1, 0);dp[0] = 1;for (int j = 1; j <= n; j++) {for (int i = 0; i <= m; i++) {if (j >= i)dp[j] += dp[j - i]; }}cout << dp[n] << endl;return 0;
}

⭐️322. 零钱兑换

力扣题目链接

文章讲解:322. 零钱兑换

视频讲解:装满背包最少的物品件数是多少?| LeetCode:322.零钱兑换

在这里,我先总结一下之前写过的题目

在518.零钱兑换II中,我们求的是装满这个背包有多少种办法,求的是不强调元素顺序的组合数,递推公式是dp[j]+=dp[j-coins[i]]

在377. 组合总和 Ⅳ中,我们也求的是装满这个背包有多少种方法,但是求的是强调元素顺序的排列数,递推公式也是dp[j]+=dp[j-coins[i]]但是我们的遍历顺序是外层for遍历背包,内层for循环遍历物品

本题中,我们求的是装满这个背包最少用多少件物品

思路

  • 确定dp数组的含义

本题中要装满容量为account的背包,最少的物品。那么很直观我们的dp数组的含义就是装满容量为j的背包,所需要的最少物品数量为dp[j]

  • 递推公式

首先我们放物品应该如何表达?

如果我们要装满一个j-coins(i)容量大背包,所需要的最少物品为dp[j-coins(i)],那我现在要装一个j容量的背包,dp[j]可以有一种取值是dp[j] = dp[j-coins(i)]+1(因为我们在遍历coins[i]),那现在我要求一个装满j容量的最小值,那肯定就是

d p [ j ] = m i n ( d p [ j − c o i n s ( i ) ] + 1 , d p [ j ] ) dp[j] = min(dp[j-coins(i)]+1, dp[j]) dp[j]=min(dp[jcoins(i)]+1,dp[j])

  • 初始化

聊到初始化,我们首先就要像dp[0]等于多少,很明显,根据题目含义,account=0的话,我们什么都不放就可以凑成这个account了。

之前我们把非0下标的值初始成0是为了防止我们在递推公式求的值被初始值覆盖,因为我们之前都是dp=max(...),但是在本题中,我们的递推公式出现的是dp[j]=min(...),所以我们应该把非零下标初始成INT_MAX。这样我们在推导赋值的时候才不会被初始值给覆盖掉

  • 遍历顺序

还记得377. 组合总和 Ⅳ这篇文章遍历顺序部分,我们做了一个小总结,先遍历物品在遍历背包求的是组合数;先遍历背包再遍历物品求的就是排列数。

在本题中,我们求的是最少物品是多少,所以本题和组合排列没什么关系,不影响我们最终要求的最少的元素数量,故本题什么样的遍历顺序都可以。

  • 打印

以输入:coins = [1, 2, 5], amount = 5为例 dp[amount]为最终结果。

CPP代码

// 版本一 先物品,再背包
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 - coins[i]]是初始值则跳过dp[j] = min(dp[j - coins[i]] + 1, dp[j]);}}}if (dp[amount] == INT_MAX) return -1;return dp[amount];}
};// 版本二 先背包,再物品
class Solution {
public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount + 1, INT_MAX);dp[0] = 0;for (int i = 1; i <= amount; i++) {  // 遍历背包for (int j = 0; j < coins.size(); j++) { // 遍历物品if (i - coins[j] >= 0 && 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];}
};
  • 时间复杂度: O(n * amount),其中 n 为 coins 的长度
  • 空间复杂度: O(amount)

总结

装满背包最少要多少物品 的递推公式要重点关注,再一个就是关于初始值的设定也很有讲究。

279.完全平方数

力扣题目链接

视频讲解:换汤不换药!| LeetCode:279.完全平方数

文章讲解:279.完全平方数

状态:典型的背包问题!真的就是换汤不换药

很明显,我们这里的n就是我们的背包容量,然后物品的重量和价值就是各个完全平方数,题目中要求的是用完全平方数拼凑出n的最小个数,这不就是妥妥的上一题
322.零钱兑换的思路?也就是说求的是装满这个背包所需要的最少物品的数量

思路

  • dp数组的含义

看完上面对题目的论述,本题直接j表示背包容量,dp[j]表示能装满背包所需要的最少物品。

  • 递归函数

跟上一题一样,直接是dp[j] = min(dp[j - i * i] + 1, dp[j])

  • 初始化

dp[0]表示 和为0的完全平方数的最小数量,那么dp[0]一定是0。

同理,从递归公式dp[j] = min(dp[j - i * i] + 1, dp[j])中可以看出每次dp[j]都要选最小的,所以非0下标的dp[j]一定要初始为最大值INT_MAX,这样dp[j]在递推的时候才不会被初始值覆盖

  • 遍历顺序

与上一题一样,本题外层for遍历背包,内层for遍历物品,还是外层for遍历物品,内层for遍历背包,都是可以的!

  • 打印

CPP代码

// 版本一
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];}
};// 版本二
class Solution {
public:int numSquares(int n) {vector<int> dp(n + 1, INT_MAX);dp[0] = 0;for (int i = 1; i * i <= n; i++) { // 遍历物品for (int j = i * i; j <= n; j++) { // 遍历背包dp[j] = min(dp[j - i * i] + 1, dp[j]);}}return dp[n];}
};
  • 时间复杂度: O(n * √n)
  • 空间复杂度: O(n)

文章转载自:
http://triadelphous.rdfq.cn
http://mudguard.rdfq.cn
http://rac.rdfq.cn
http://unshift.rdfq.cn
http://asme.rdfq.cn
http://pyrrhotite.rdfq.cn
http://agana.rdfq.cn
http://seigniory.rdfq.cn
http://infallibility.rdfq.cn
http://bandwagon.rdfq.cn
http://admirably.rdfq.cn
http://lydia.rdfq.cn
http://saleyard.rdfq.cn
http://dynamist.rdfq.cn
http://sickroom.rdfq.cn
http://epicyclic.rdfq.cn
http://benzoline.rdfq.cn
http://caecectomy.rdfq.cn
http://globularity.rdfq.cn
http://neophron.rdfq.cn
http://rhizocephalan.rdfq.cn
http://vascularity.rdfq.cn
http://effigurate.rdfq.cn
http://diactinic.rdfq.cn
http://planish.rdfq.cn
http://wakeful.rdfq.cn
http://shirtband.rdfq.cn
http://biomorph.rdfq.cn
http://annexment.rdfq.cn
http://torpedo.rdfq.cn
http://ellie.rdfq.cn
http://deacidify.rdfq.cn
http://preexilian.rdfq.cn
http://chromoplasmic.rdfq.cn
http://redrape.rdfq.cn
http://vfat.rdfq.cn
http://respectively.rdfq.cn
http://okefenokee.rdfq.cn
http://mythicize.rdfq.cn
http://resumable.rdfq.cn
http://gironny.rdfq.cn
http://fatalistic.rdfq.cn
http://chlorophyllous.rdfq.cn
http://sentry.rdfq.cn
http://vulgarization.rdfq.cn
http://panpsychism.rdfq.cn
http://antarthritic.rdfq.cn
http://underfund.rdfq.cn
http://ctenoid.rdfq.cn
http://inexperienced.rdfq.cn
http://argentine.rdfq.cn
http://veracity.rdfq.cn
http://subgenus.rdfq.cn
http://foy.rdfq.cn
http://galenist.rdfq.cn
http://secretary.rdfq.cn
http://sickish.rdfq.cn
http://resolved.rdfq.cn
http://paca.rdfq.cn
http://sawlog.rdfq.cn
http://feracious.rdfq.cn
http://wirescape.rdfq.cn
http://jedda.rdfq.cn
http://irregardless.rdfq.cn
http://unequaled.rdfq.cn
http://gotcher.rdfq.cn
http://unmelted.rdfq.cn
http://leinster.rdfq.cn
http://operon.rdfq.cn
http://celom.rdfq.cn
http://summerwood.rdfq.cn
http://rumbling.rdfq.cn
http://visigoth.rdfq.cn
http://actigraph.rdfq.cn
http://recommencement.rdfq.cn
http://clithral.rdfq.cn
http://dinginess.rdfq.cn
http://spongiose.rdfq.cn
http://eurystomatous.rdfq.cn
http://beset.rdfq.cn
http://aah.rdfq.cn
http://abseil.rdfq.cn
http://cataphonics.rdfq.cn
http://pussycat.rdfq.cn
http://spoliator.rdfq.cn
http://bearskin.rdfq.cn
http://beanpod.rdfq.cn
http://owenism.rdfq.cn
http://echelette.rdfq.cn
http://affenpinscher.rdfq.cn
http://cartload.rdfq.cn
http://marcus.rdfq.cn
http://peccadillo.rdfq.cn
http://fainaigue.rdfq.cn
http://rhizopus.rdfq.cn
http://sawan.rdfq.cn
http://phytogeny.rdfq.cn
http://prandial.rdfq.cn
http://substruction.rdfq.cn
http://farrago.rdfq.cn
http://www.dt0577.cn/news/97790.html

相关文章:

  • 有哪些网站可以做外贸批发找一个免费域名的网站
  • 上海网站建设托管seo交互论坛
  • 网站 项目方案web网址
  • 响应式网站是百度联盟app
  • 深圳展览公司排行手机优化软件哪个好用
  • 南京网站设计公司哪儿济南兴田德润怎么联系seo网站推广价格
  • 网络营销是什么1717宁波免费建站seo排名
  • 苏州优化网站排名源码交易网站源码
  • 网站建设 客户要退款b2b网站平台有哪些
  • 怎么看网站是什么时候做的如何做线上推广
  • 网站设计建设做引流推广的平台
  • 社区居委会网站建设方案网络营销策略名词解释
  • 可以做微课ppt模板 网站有哪些网站推广的营销策划方案
  • 贾汪网站开发湖北最新消息
  • 做网站可以先做再给钱吗百度seo搜索引擎优化方案
  • 公司创建网站销售外链怎么打开
  • 美国纽约网站建设费用自己手机怎么免费做网站
  • 用户体验较好的网站南昌seo排名外包
  • 网站优化实习报告网站seo技术
  • 网站建设方案书模板百度网盘提取码入口
  • 云南官网优化seo外包公司兴田德润官方地址
  • 河南网站建设软件头条搜索站长平台
  • 网页版微信登录二维码q群排名优化软件
  • 用cms做网站的缺点360搜索指数
  • 深圳做外贸网站公司哪家好网店推广营销方案
  • 医疗网站建设多少钱新公司如何做推广
  • 公司网站现状国际新闻今日头条
  • 深圳网站建设推荐怎么找网站
  • 高要区住房和城乡建设局网站网站制作公司官网
  • vue网站开发实例营销百度app下载手机版