广东省住房和建设网站企业门户网站设计报告

张小明 2026/1/19 22:02:41
广东省住房和建设网站,企业门户网站设计报告,网站如何绑定域名,汕头建站价格518.零钱兑换II 文章讲解/视频讲解 题目描述#xff1a; 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount 5, coins [1, 2, 5]输出: 4 解释: 有四种方式可以凑成总金额: 5552215211…518.零钱兑换II文章讲解/视频讲解题目描述给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。示例 1:输入: amount 5, coins [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:55522152111511111示例 2:输入: amount 3, coins [2]输出: 0解释: 只用面额2的硬币不能凑成总金额3。示例 3:输入: amount 10, coins [10]输出: 1注意你可以假设0 amount (总金额) 50001 coin (硬币面额) 5000硬币种类不超过 500 种结果符合 32 位符号整数思路本题就很像之前做过的“目标和”都是给出背包容量求装满背包的方法数。但是“目标和”每个元素只能使用一次前面我们介绍过了这是01背包的特征。而本题每种面额的硬币都有无穷个所以这就是之前提到过的完全背包一样来写动态规划五部曲1.确定dp数组及其下标含义dp[i][j]使用 下标为[0, i]的coins[i]能够凑满j包括j这么大容量的包有dp[i][j]种组合方法。2.确定递推公式完全背包递推公式与01背包的区别在于01背包递推公式为:dp[i][j] max(dp[i - 1][j], dp[i - 1][j - weight[i]] value[i])01背包如果放了物品i再取就只能拿物品0到物品i - 1这个范围了物品i拿不了。而完全背包公式为dp[i][j] max(dp[i - 1][j], dp[i][j - weight[i]] value[i])因为有无限个物品我拿完物品i下一次还是能从物品0到物品i的区间里拿。本题的一维dp数组递推公式为dp[j] dp[j - coins[i]]与目标和一致之前讲过这里不再过多赘述3.dp数组的初始化我们要关注的就是dp[0]装满背包容量为0的方法是1即不放任何物品dp[0] 14.确定遍历顺序完全背包的两个for循环随便先后顺序都可以但是本题不行因为本题本质和元素凑成的顺序没多大关系本题描述也是求组合数。假设存在结果221和212如果求的组合数那就只有一种如果是求排列数那么这可就算两种排列了。我们先来看 外层for循环遍历物品钱币内层for遍历背包金钱总额的情况。代码如下for (int i 0; i coins.size(); i) { // 遍历物品 for (int j coins[i]; j amount; j) { // 遍历背包容量 dp[j] dp[j - coins[i]]; } }假设coins[0] 1coins[1] 5。那么就是先把1加入计算然后再把5加入计算得到的方法数量只有{1, 5}这种情况。而不会出现{5, 1}的情况。所以这种遍历顺序中dp[j]里计算的是组合数如果把两个for交换顺序代码如下for (int j 0; j amount; j) { // 遍历背包容量 for (int i 0; i coins.size(); i) { // 遍历物品 if (j - coins[i] 0) dp[j] dp[j - coins[i]]; } }背包容量的每一个值都是经过 1 和 5 的计算包含了{1, 5} 和 {5, 1}两种情况。此时dp[j]里算出来的就是排列数所以一定是先遍历物品再遍历背包容量想不明白就打印数组自己看看5.举例推导dp数组输入: amount 5, coins [1, 2, 5] dp状态图如下最后红色框dp[amount]为最终结果。代码示例function change(amount: number, coins: number[]): number { const dp:number[] new Array(amount 1).fill(0) dp[0] 1 for(let i 0 ; i coins.length; i){ for(let j coins[i]; j amount; j){ dp[j] dp[j - coins[i]] } } return dp[amount] };377.组合总和IV文章讲解/视频讲解题目描述难度中等给定一个由正整数组成且不存在重复数字的数组找出和为给定目标正整数的组合的个数。示例:nums [1, 2, 3]target 4所有可能的组合为 (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)请注意顺序不同的序列被视作不同的组合。因此输出为 7。思路与上题一样的思路但是换成了求排列虽然本题题干说的是求组合但是我们对组合的定义其实是不强调顺序即1,5和5,1算同一个组合但其实算两个不同的排列。1.确定dp数组及其下标含义dp[i]凑成目标正整数为i的排列个数为dp[i]2.确定递推公式之前说过了只要是求装满背包有几种方法一般都是用dp[i] dp[i - nums[j]3.dp数组如何初始化dp[0]一定要初始化为1否则递归其他dp[i]就没有数值基础了其他全部初始化为0避免影响dp[i]累加4.确定遍历顺序上一题求的是组合我们先遍历物品再遍历背包本题求的是排列所以是先遍历背包再遍历物品。5.举例来推导dp数组我们再来用示例中的例子推导一下代码示例function combinationSum4(nums: number[], target: number): number { const dp:number[] new Array(target 1).fill(0) dp[0] 1 for(let i 1; i target; i){ for(let j 0; j nums.length; j){ if(i nums[j]){ dp[i] dp[i - nums[j]] } } } return dp[target] };爬楼梯进阶文章讲解题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬至多m (1 m n)个台阶。你有多少种不同的方法可以爬到楼顶呢注意给定 n 是一个正整数。输入描述输入共一行包含两个正整数分别表示n, m输出描述输出一个整数表示爬到楼顶的方法数。输入示例3 2输出示例3提示当 m 2n 3 时n 3 这表示一共有三个台阶m 2 代表你每次可以爬一个台阶或者两个台阶。此时你有三种方法可以爬到楼顶。1 阶 1 阶 1 阶段1 阶 2 阶2 阶 1 阶思路其实我们之前就写过一道爬楼梯了力扣上那道是一次只能爬一节或两节本题可以爬1到m任意节其实还是一个完全背包。每次能爬的阶数就是物品楼顶就是背包容量我这次跳了一节下次还能再跳一次一节也就是物品可以重复使用。而问跳到楼顶有几种方法其实不就是问装满背包有几种方法吗1.确定dp数组及其下标含义dp[i]爬到i个台阶的楼顶有dp[i]种方法2.确定递推公式求装满背包有几种方法递推公式一般都是dp[i] dp[i - nums[j]];本题比较特殊dp[i]的来源是dp[i -1],dp[i -2]......也就是dp[i - j]所以递推公式为dp[i] dp[i - j]3.dp数组如何初始化依旧是dp[0]为1其他非零下标全是14.确定遍历顺序这里先上一节再上三节和先上三节再上一节最后都上了四节但是算两种不同的方法前面提到过这种我们称作排列也就是背包容量在外面循环物品在内循环。5.举例推导dp数组与上题基本一致代码示例var climbStairs function (n: number): number { let dp: number[] new Array(n 1).fill(0); dp[0] 1; for (let j 1; j n; j) {//遍历背包 for (let i 1; i 2; i) {//遍历物品 if (j - i 0) dp[j] dp[j] dp[j - i]; } } return dp[n]; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

关于网站制作的评价wordpress全站pjax

Step1:安装jdk 由于我的burpsuite是1.7版本的,所以我选择了jdk8的版本。 安装好之后,验证一下Step2:打开burp-loader-keygen.jar文件获取key常见问题:双击该jar文件打不开双击文件之后,总是默认是上面这个打开方式,但这…

张小明 2026/1/10 6:29:02 网站建设

网站建设公司找哪里网站 建设需要提供哪些资料

FaceFusion与ENSP下载官网无关?别再混淆网络工具与AI模型! 在数字内容创作的浪潮中,AI换脸技术正以前所未有的速度渗透进影视、直播、虚拟形象等领域。你可能已经听说过 FaceFusion ——这个在GitHub上悄然走红的开源项目,凭借其高…

张小明 2026/1/1 2:50:06 网站建设

手机上做网站电子商务网站建设与维护pdf

Excalidraw深度解析:如何用自然语言生成架构草图 在一次远程技术评审会议中,产品经理刚描述完新功能的流程逻辑,工程师便在共享白板上点下“AI 生成”按钮——几秒钟后,一个结构清晰、带有手绘质感的系统架构图跃然屏上。这不是某…

张小明 2026/1/1 7:03:01 网站建设

网页制作与网站建设思维导图腾讯云服务器怎么登录

终极NBTExplorer指南:3步学会我的世界数据编辑 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 你是否曾看着别人的我的世界存档里那些神奇的功能&#…

张小明 2025/12/25 9:12:59 网站建设

智慧团建登录入口官网手机版抖音seo培训

交通数据采集与处理 在交通仿真软件中,数据的采集与处理是至关重要的一步。高质量的交通数据不仅能够提高仿真的准确性,还能为后续的分析和优化提供可靠的基础。本节将详细介绍如何在Paramics中进行交通数据的采集与处理,包括数据源的选择、数…

张小明 2025/12/25 9:13:00 网站建设

wordpress对接易支付宝seo关键词优化方案

wgpu性能优化终极指南:实战技巧让渲染性能翻倍 【免费下载链接】wgpu Cross-platform, safe, pure-rust graphics api. 项目地址: https://gitcode.com/GitHub_Trending/wg/wgpu 你是否曾经遇到过这样的困境:精心设计的3D场景在低端设备上卡顿不断…

张小明 2025/12/25 9:13:00 网站建设