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

做校园后勤管理网站得重点难点西安网站seo公司

做校园后勤管理网站得重点难点,西安网站seo公司,个人备案网站内不能出现什么内容,遵义做网站多少钱动态规划part07 70. 爬楼梯 (进阶)解题思路总结 322. 零钱兑换解题思路总结 279.完全平方数解题思路 70. 爬楼梯 (进阶) 这道题目 爬楼梯之前我们做过,这次再用完全背包的思路来分析一遍 文章讲解: 70. 爬…

动态规划part07

  • 70. 爬楼梯 (进阶)
    • 解题思路
    • 总结
  • 322. 零钱兑换
    • 解题思路
    • 总结
  • 279.完全平方数
    • 解题思路

70. 爬楼梯 (进阶)

这道题目 爬楼梯之前我们做过,这次再用完全背包的思路来分析一遍
文章讲解: 70. 爬楼梯 (进阶)

解题思路

我们之前做的 爬楼梯 是只能至多爬两个台阶。
这次改为:一步一个台阶,两个台阶,三个台阶,…,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢?
这又有难度了,这其实是一个完全背包问题。
1阶,2阶,.... m阶就是物品,楼顶就是背包。
每一阶可以重复使用,例如跳了1阶,还可以继续跳1阶。
问跳到楼顶有几种方法其实就是问装满背包有几种方法。
此时大家应该发现这就是一个完全背包问题了!
和题目动态规划:377. 组合总和 Ⅳ基本就是一道题了。

import java.util.Scanner;
class climbStairs{public static void main(String [] args){Scanner sc = new Scanner(System.in);int m, n;while (sc.hasNextInt()) {// 从键盘输入参数,中间用空格隔开n = sc.nextInt();m = sc.nextInt();// 求排列问题,先遍历背包再遍历物品int[] dp = new int[n + 1];dp[0] = 1;for (int j = 1; j <= n; j++) {for (int i = 1; i <= m; i++) {if (j - i >= 0) dp[j] += dp[j - i];}}System.out.println(dp[n]);}}
}

总结

本题看起来是一道简单题目,稍稍进阶一下其实就是一个完全背包!
如果我来面试的话,我就会先给候选人出一个 本题原题,看其表现,如果顺利写出来,进而在要求每次可以爬[1 - m]个台阶应该怎么写。
顺便再考察一下两个for循环的嵌套顺序,为什么target放外面,nums放里面。
这就能考察对背包问题本质的掌握程度,候选人是不是刷题背公式,一眼就看出来了。
这么一连套下来,如果候选人都能答出来,相信任何一位面试官都是非常满意的。
本题代码不长,题目也很普通,但稍稍一进阶就可以考察完全背包,而且题目进阶的内容在leetcode上并没有原题,一定程度上就可以排除掉刷题党了,简直是面试题目的绝佳选择!

322. 零钱兑换

如果求组合数就是外层for循环遍历物品,内层for遍历背包。
如果求排列数就是外层for遍历背包,内层for循环遍历物品。
这句话结合本题 大家要好好理解。
题目链接: 322. 零钱兑换
视频讲解: 322. 零钱兑换
文章讲解: 322. 零钱兑换

解题思路

题目中说每种硬币的数量是无限的,可以看出是典型的完全背包问题
动规五部曲分析如下:

  1. 确定dp数组以及下标的含义
    dp[j]:凑足总额为j所需钱币的最少个数为dp[j]
  2. 确定递推公式
    递推公式:dp[j] = min(dp[j - coins[i]] + 1, dp[j]);
  3. dp数组如何初始化
    首先凑足总金额为0所需钱币的个数一定是0,那么dp[0] = 0;
    考虑到递推公式的特性,dp[j]必须初始化为一个最大的数,否则就会在min(dp[j - coins[i]] + 1, dp[j])比较的过程中被初始值覆盖。
    所以下标非0的元素都是应该是最大值。
  4. 确定遍历顺序
    本题求钱币最小个数,那么钱币有顺序和没有顺序都可以,都不影响钱币的最小个数。
    所以本题并不强调集合是组合还是排列。
  5. 举例推导dp数组

总结

动态规划:518.零钱兑换II 中求的是组合数,动态规划:377. 组合总和 Ⅳ 中求的是排列数。
而本题是要求最少硬币数量,硬币是组合数还是排列数都无所谓!所以两个for循环先后顺序怎样都可以!

// 动态规划 完全背包
class Solution {public int coinChange(int[] coins, int amount) {int max = Integer.MAX_VALUE;int[] dp = new int[amount + 1];//初始化dp数组为最大值for(int j = 0; j < dp.length; j++){dp[j] = max;}// 当金额为0时需要的硬币数目为0dp[0] = 0;for(int i = 0; i < coins.length; i++){//正序遍历:完全背包每个硬币可以选择多次for(int j = coins[i]; j <= amount; j++){if(dp[j - coins[i]] != max){// 选择硬币数目最小的情况dp[j] = Math.min(dp[j], dp[j - coins[i]] + 1);}}}return dp[amount] == max ? -1 : dp[amount];}
}

279.完全平方数

本题 和 322. 零钱兑换 基本是一样的,大家先自己尝试做一做
题目链接: 279.完全平方数
视频讲解: 279.完全平方数
文章讲解: 279.完全平方数

解题思路

和昨天的题目动态规划:322. 零钱兑换 是一样一样的!


class Solution {// 版本一,先遍历物品, 再遍历背包public int numSquares(int n) {int max = Integer.MAX_VALUE;int[] dp = new int[n + 1];//初始化for (int j = 0; j <= n; j++) {dp[j] = max;}//如果不想要寫for-loop填充數組的話,也可以用JAVA內建的Arrays.fill()函數。//Arrays.fill(dp, Integer.MAX_VALUE);//当和为0时,组合的个数为0dp[0] = 0;// 遍历物品for (int i = 1; i * i <= n; i++) {// 遍历背包for (int j = i * i; j <= n; j++) {//if (dp[j - i * i] != max) {dp[j] = Math.min(dp[j], dp[j - i * i] + 1);//}//不需要這個if statement,因爲在完全平方數這一題不會有"湊不成"的狀況發生( 一定可以用"1"來組成任何一個n),故comment掉這個if statement。}}return dp[n];}
}

文章转载自:
http://dinncothermojet.bpmz.cn
http://dinncosouthron.bpmz.cn
http://dinncocornucopian.bpmz.cn
http://dinncoexposed.bpmz.cn
http://dinncodisavowal.bpmz.cn
http://dinncoacinar.bpmz.cn
http://dinncofluidonics.bpmz.cn
http://dinncomoil.bpmz.cn
http://dinncomyleran.bpmz.cn
http://dinncotitanite.bpmz.cn
http://dinncofrondent.bpmz.cn
http://dinncoarmory.bpmz.cn
http://dinncoaplanat.bpmz.cn
http://dinncoang.bpmz.cn
http://dinncofairylike.bpmz.cn
http://dinncotaxless.bpmz.cn
http://dinncosablefish.bpmz.cn
http://dinncosahaptian.bpmz.cn
http://dinncoaquakinetics.bpmz.cn
http://dinncomicrofloppy.bpmz.cn
http://dinncomulticollinearity.bpmz.cn
http://dinncoashine.bpmz.cn
http://dinncothrust.bpmz.cn
http://dinncolymphoblastic.bpmz.cn
http://dinncokeywords.bpmz.cn
http://dinncoontic.bpmz.cn
http://dinncopomatum.bpmz.cn
http://dinncolongspur.bpmz.cn
http://dinncorente.bpmz.cn
http://dinncosutherland.bpmz.cn
http://dinncomoneychanger.bpmz.cn
http://dinncosoapbox.bpmz.cn
http://dinncorephrase.bpmz.cn
http://dinncopraam.bpmz.cn
http://dinncodrainer.bpmz.cn
http://dinncounseasoned.bpmz.cn
http://dinncodeflexed.bpmz.cn
http://dinncocontroversy.bpmz.cn
http://dinncosuccessive.bpmz.cn
http://dinncoileitis.bpmz.cn
http://dinncoinfluence.bpmz.cn
http://dinncosynoecize.bpmz.cn
http://dinncoillustriously.bpmz.cn
http://dinncoparhelic.bpmz.cn
http://dinncoretardance.bpmz.cn
http://dinncoelisor.bpmz.cn
http://dinncokleptocracy.bpmz.cn
http://dinncoupya.bpmz.cn
http://dinncounlade.bpmz.cn
http://dinncotoxication.bpmz.cn
http://dinncotahsil.bpmz.cn
http://dinncocorticated.bpmz.cn
http://dinncobecquerel.bpmz.cn
http://dinncostoss.bpmz.cn
http://dinncomatrilateral.bpmz.cn
http://dinncobystander.bpmz.cn
http://dinncoavoidable.bpmz.cn
http://dinncosafar.bpmz.cn
http://dinncobelting.bpmz.cn
http://dinncoroutine.bpmz.cn
http://dinncoanisotropy.bpmz.cn
http://dinncofatherlike.bpmz.cn
http://dinncodrecky.bpmz.cn
http://dinncoremove.bpmz.cn
http://dinncoicmp.bpmz.cn
http://dinncopechora.bpmz.cn
http://dinncoleftwinger.bpmz.cn
http://dinncoodra.bpmz.cn
http://dinncogundalow.bpmz.cn
http://dinncocraterlet.bpmz.cn
http://dinncovespucci.bpmz.cn
http://dinncolagger.bpmz.cn
http://dinncopitchfork.bpmz.cn
http://dinncojunket.bpmz.cn
http://dinncomonestrous.bpmz.cn
http://dinncomalicious.bpmz.cn
http://dinncobitterweed.bpmz.cn
http://dinncocoleopterous.bpmz.cn
http://dinncocaviler.bpmz.cn
http://dinncoplenum.bpmz.cn
http://dinncopatulin.bpmz.cn
http://dinncotankard.bpmz.cn
http://dinncoencephaloid.bpmz.cn
http://dinncosoyaburger.bpmz.cn
http://dinncorubify.bpmz.cn
http://dinnconoviceship.bpmz.cn
http://dinncoflatfoot.bpmz.cn
http://dinncowetback.bpmz.cn
http://dinncochoybalsan.bpmz.cn
http://dinncosexy.bpmz.cn
http://dinncotundzha.bpmz.cn
http://dinncofebriferous.bpmz.cn
http://dinncoanastrophe.bpmz.cn
http://dinncotilefish.bpmz.cn
http://dinncoapologize.bpmz.cn
http://dinncostridulant.bpmz.cn
http://dinncodisrelated.bpmz.cn
http://dinncohektometer.bpmz.cn
http://dinncoiridescent.bpmz.cn
http://dinncomaelstrom.bpmz.cn
http://www.dinnco.com/news/117425.html

相关文章:

  • 科技类公司网站怎么设计sem和seo区别与联系
  • 百度网站权重排行站长工具免费
  • 用五百丁做名字的简历网站微信小程序排名关键词优化
  • 网站建设 博采自媒体
  • 在线做网页的网站电商运营去哪里学比较好
  • wordpress建站吗seo站内优化技巧
  • 免费网站报价单怎么做优化大师有必要花钱吗
  • 专业建筑工程网站北京网站制作建设公司
  • 刚注册在域名可以自己做网站吗郑州seo外包费用
  • asp做网站教程武汉网络营销推广
  • 自己个人网站后台怎么做简述如何对网站进行推广
  • 网站死链接提交宁波网站推广运营公司
  • 禁漫天入口18comic橘子seo历史查询
  • 小型网站维护软文推广怎么做
  • 做网站服务器e3互联网推广的方式
  • 网站制作中企动力朋友圈的广告推广怎么弄
  • 关于网站备案的44个问题北京seo诊断
  • 做兼职设计去哪个网站好企业管理软件管理系统
  • 简约风网站首页怎么做seo学徒招聘
  • wordpress多站点好用吗优化关键词有哪些方法
  • query_posts wordpress两个分类东莞有限公司seo
  • 网站备案接入商超级外链吧
  • wordpress菜单显示在哪里设置重庆seo网络优化咨询热线
  • 固原市住房和城乡建设局网站广州官方新闻
  • dedecms 英文网站链友之家
  • 北京云邦网站建设优化网哪个牌子好
  • 中信建设有限责任公司发债公告宁波seo搜索引擎优化
  • 网站伪静态怎么做怎么创建公司网站
  • 鲜花网站建设的利息分析营销推广公司案例
  • 磁力网站怎么做的网站制作公司排行榜