leetcode322 零钱兑换

news/2024/11/18 23:50:57/文章来源:https://www.cnblogs.com/vastjoy/p/18434802

leetcode322 零钱兑换

image-20240927001636548

思路:分析可知这是一道完全背包问题,主要代码为

for (int j = 0; j < coins.length; j++) {if (coins[j] <= i) {dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1);}
}

但是要注意边界情况的处理,首先dp[0]赋值为0,所有元素赋值为最大值+1,这样在遍历的时候dp[i](i为coins中元素)=dp[0]+1=1

再讨论一下需要返回-1的情况,比如coins为:[2,4] amount为5

这样在5的循环中,首先dp[5]=amount+1=6(初始状态),然后dp[5]=min(dp[5],d[5-2]+1)即dp[5]=min(6,d[3]+1),dp[3]=min(6,dp[1]+1)=6所以dp[5]=6,可见只要最后dp[amount]>amount就返回-1

public class Solution {public int coinChange(int[] coins, int amount) {int max = amount + 1;int[] dp = new int[amount + 1];Arrays.fill(dp, max);dp[0] = 0;for (int i = 1; i <= amount; i++) {for (int j = 0; j < coins.length; j++) {if (coins[j] <= i) {dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1);}}}if(dp[amount]>amount) return -1;return dp[amount];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/804363.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业数字化转型项目顶层规划方案

企业数字化转型项目顶层规划方案

2024秋软件工程结对作业(第一次之需求分析和原型设计)

软件工程课程 班级链接作业要求 作业链接作业目标 需求分析和原型设计学号 102201312队友 102201311张硕使用墨刀构建原型,原型链接:请点击我客户现实困扰 ​ 在大学里,一些有想法的学生希望通过发起或参与跨专业的项目(创业、学术)来提升自己的综合能力,拓宽知识面和积累…

软件工程第一次结对作业《福大Team》

软件工程课程 班级链接作业要求 作业链接作业目标 需求分析和原型设计学号 102201311队友 102201312陈言泷使用墨刀构建原型,原型链接:请点击我客户现实困扰 ​ 在大学里,一些有想法的学生希望通过发起或参与跨专业的项目(创业、学术)来提升自己的综合能力,拓宽知识面和积…

讲的好!!!

若有侵权,请联系删除!!!

易优CMS后台上传图片报错mkdir(): Permission denied 报错-eyoucms

当你在易优CMS后台上传图片时遇到“mkdir(): Permission denied”的错误提示时,通常是因为文件系统的权限设置不当。以下是一些具体的解决步骤: 步骤 1:检查目录权限确定问题目录确认出现问题的目录是 /core/library/think/cache/driver/File.php。 实际上,问题可能出现在其…

易优CMS阿里云OSS上传图片报错-eyoucms

步骤 1:检查基本设置确认基本设置登录易优CMS后台。 进入“基本设置”或“系统设置”页面。 确认“站点域名”或“访问域名”设置为 HTTPS 开头的域名。 步骤 2:检查 OSS 插件配置进入 OSS 插件设置在后台找到 OSS 插件设置页面。 确认 OSS 插件中的所有域名配置都使用 HTTPS…

易优CMS网站method not exist thinkldb\Query-getWeappData-eyoucms

当你在易优CMS升级后遇到“method not exist:think\db\Query->getWeappData”的错误提示时,这通常意味着代码中调用的方法在所使用的ThinkPHP框架版本中并不存在。这种情况可能是由于以下原因导致的:代码与框架版本不匹配:升级后的代码可能依赖于一个在新版本ThinkPHP中不…

易优CMS致命错误,联系技术支持:Call to undefined function eyPreventShell()-eyoucms

当你遇到 core/helper.php 第 146 行左右出现致命错误,并且提示 Call to undefined function eyPreventShell() 时,通常是因为某个自定义函数未被定义或未被正确引入。以下是一些具体的解决步骤: 步骤 1:检查函数定义定位 eyPreventShell 函数查找 eyPreventShell 函数的定…

易优CMS请重启MYSQL数据库,或者联系空间服务商处理[错误报错]出现以下提示该怎么办?-eyoucms

当你遇到“请重启MYSQL数据库,或者联系空间服务商处理”的错误提示时,通常意味着数据库连接存在问题,可能是由于数据库服务未启动,或者是数据库配置信息不正确导致的。以下是一些基本的解决步骤: 步骤 1:检查数据库服务状态确认数据库服务是否启动如果你有访问服务器的权…

易优CMS数据表和视图不存在该怎么办?-eyoucms

当你遇到数据表或视图不存在的问题时,可以通过以下步骤来解决: 具体步骤确认缺失的数据表首先打开数据库管理工具(如 phpMyAdmin),检查报错中提到的数据表是否存在。 如果缺失的数据表是 ey_product_spec_data_handle,则需要创建该表。获取 SQL 语句从官方下载最新的数据…

易优CMS网站SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared

当你遇到“SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared”的错误时,这通常是因为数据库连接配置中的某些参数不正确。具体来说,这可能是因为数据库驱动程序在某些环境下需要特定的配置才能正常工作。 解决方法找到数据库配置文件打开数…