Leetcode--322. 零钱兑换

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。

示例 1:

输入: coins = [1, 2, 5], amount = 11
输出: 3 
解释: 11 = 5 + 5 + 1
示例 2:

输入: coins = [2], amount = 3
输出: -1
说明:
你可以认为每种硬币的数量是无限的。

思路:每一个数据都可以看做前面某一个dp[x]加上一个coins[i]的值,如果找不到这样的数字,那说明无法进行兑换

提交的代码:

class Solution {
    public int coinChange(int[] coins, int amount) {
     int i,j;
        Arrays.sort(coins);
        int n = coins.length;
        int[] dp = new int[amount+1];
        int min = Integer.MAX_VALUE;
        dp[0] = 0;
        if(amount==0)
        {
            return 0;
        }
        for(i=1;i<=amount;i++)
        {
            min = Integer.MAX_VALUE;
            for(j=0;j<n;j++)
            {
                if(i-coins[j]>=0)
                {
                    if(dp[i-coins[j]] != Integer.MAX_VALUE)
                    {
                        min = java.lang.Math.min(min, dp[i-coins[j]]+1);
                    }

                }
                else
                {
                    break;
                }
            }
            dp[i] = min;
        }
        if(dp[amount]!=Integer.MAX_VALUE)
        {
             return dp[amount];
        }
        else
        {
            return -1;
        }
    }
}

完整的代码:

import java.util.Arrays;

public class Solution322 {
    public static int coinChange(int[] coins, int amount) {
        int i,j;
        Arrays.sort(coins);
        int n = coins.length;
        int[] dp = new int[amount+1];
        int min = Integer.MAX_VALUE;
        dp[0] = 0;
        if(amount==0)
        {
            return 0;
        }
        for(i=1;i<=amount;i++)
        {
            min = Integer.MAX_VALUE;
            for(j=0;j<n;j++)
            {
                if(i-coins[j]>=0)
                {
                    if(dp[i-coins[j]] != Integer.MAX_VALUE)
                    {
                        min = java.lang.Math.min(min, dp[i-coins[j]]+1);
                    }

                }
                else
                {
                    break;
                }
            }
            dp[i] = min;
        }
        if(dp[amount]!=Integer.MAX_VALUE)
        {
             return dp[amount];
        }
        else
        {
            return -1;
        }
    }
    public static void main(String[] args)
    {
        int[] coins = {186,419,83,408};
        int amount = 6249;
        System.out.println(coinChange(coins,amount));
    }
}
 

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

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

相关文章

【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢

我们这是可以正好借助之前学的factorybean类&#xff0c;自己吧jdbctemplate加载到spring容器中&#xff0c;我们可以封装多个这种对象&#xff0c;那么可以实现针对不同的数据库的jdbctemplate 首先我们肯定要引入对应的jar&#xff0c;来构建数据源对象 <dependency>&l…

2020年度“中国神经科学重大进展”获奖名单【附成果介绍】

来源&#xff1a;brainnews编辑&#xff1a;Simon为了推动神经科学领域的创新发展&#xff0c;充分展示和宣传神经科学领域的重大科研成果&#xff0c;经中国神经科学学会七届二次常务理事会一致通过&#xff0c;开展2020年度“中国神经科学重大进展”推荐工作。按照相关程序&a…

python选择某一行_Python常用语法有哪些 如何快速入门Python开发

Python常用语法有哪些&#xff1f;如何快速入门Python开发&#xff1f;Python编程语言是最容易学习、并且功能强大的语言&#xff0c;吸引了很多人学习入行。很多人想知道如何快速入门Python开发&#xff0c;接下来就给大家分享Python学习入门中常用的语法知识。1、变量。常量&…

Java--线程同步

在单线程程序中&#xff0c;每次只做一件事情&#xff0c;后面的事情需要等待前面这件事情完成才可以进行 如果是多线程程序&#xff0c;这件事情还没做完就又做另外一件事情&#xff0c;这就可能发生两个线程抢占资源的问题 例如&#xff1a;a与b两个人都要去洗手间&#xf…

人类使用AI征服太空技术盘点,《星球大战》中的机器人会成为现实吗?

来源&#xff1a;学术头条作者&#xff1a;Thomas Lawrence一说起太空 AI&#xff0c;你脑海中浮现的是这样的角色吗&#xff1f;图 | 电影《星球大战》的AI机器人&#xff1a;C-3PO和R2-D2&#xff08;来源&#xff1a;starwars.fandom.com)实际上&#xff0c;早在现代计算机问…

springboot jar中没有主清单属性_Spring Boot 常见错误及解决方法

导读Spring Boot 作为 Java 生态中最流行的开发框架&#xff0c;意味着被数以万计的开发者所使用。下面根据我们自身遇到的问题&#xff0c;加上用户提供的一些反馈&#xff0c;来大致梳理下 Spring Boot 的常见错误及解决方法。找不到配置&#xff1f;配置不对&#xff1f;配置…

Leetcode--174. 地下城游戏

一些恶魔抓住了公主&#xff08;P&#xff09;并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士&#xff08;K&#xff09;最初被安置在左上角的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正…

[jQuery] 判断复选框checkbox是否选中checked

返回值是true/false method 1: $("#register").click(function(){if($("#accept").get(0).checked){alert($("#accept").get(0).checked);}else{alert($("#accept").get(0).checked);}});// 其中accept为复选框的id. 或者可以替换为: …

Nature:2020年10大科学发现

文章来源&#xff1a;新浪探索在2020年即将结束之际&#xff0c;《自然》&#xff08;Nature&#xff09;杂志盘点了今年发表的科学新闻和研究观点&#xff0c;从中选出了十项最为重大的科学发现&#xff0c;既包括新冠病毒研究、压力如何导致白发、HIV治疗等医学方面的研究&am…

php mysql上传多张图片_PHP实现一次性多张图片上传功能

原标题&#xff1a;PHP实现一次性多张图片上传功能最近遇到一个需求&#xff0c;就是多张图片上传&#xff0c;按住Ctrl键能选择多张图片一次性上传&#xff0c;上传成功后数据库保存图片的路径及图片原来的文件名。该功能一般在比较成熟的内容编辑器插件中有&#xff0c;今天特…

Leetcode--20. 有效的括号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串&#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示…

【2018.6.7】阶段总结

颓废了好久-.- 不记得从什么时候开始的了吧- 1. 好像是去年初赛翻车&#xff1f;&#xff09;&#xff09;归于以外好像也是我不对&#xff0c;&#xff0c;&#xff0c;总之很多&#xff0c;&#xff0c;不对的地方吧&#xff0c;&#xff0c;&#xff0c;我&#xff0c;&am…

车联网支持实现无人驾驶的思考

来源&#xff1a;机器学习研究组订阅号/ 导读 /无人驾驶是车辆作为运载工具智能化、网联化发展的核心应用功能&#xff0c;也是车联网、智慧交通产业发展的核心应用服务。网联无人驾驶则是在车辆智能化基础上&#xff0c;通过车联网实现车与车、车与路等的互联和信息交互&#…

mysql的代码需要保存吗_php向Mysql数据库保存数据的代码

php向Mysql数据库保存数据的代码PHP如何向MySQL数据库中写入数据你知道吗&#xff1f;你对PHP向MySQL数据库中写入数据了解吗&#xff1f;下面是小编为大家带来的php向Mysql数据库保存数据的代码&#xff0c;欢迎阅读。php向Mysql数据库保存数据的代码PHP向MySQL数据库中写入数…

Leetcode--150. 逆波兰表达式求值

根据逆波兰表示法&#xff0c;求表达式的值。 有效的运算符包括 , -, *, / 。每个运算对象可以是整数&#xff0c;也可以是另一个逆波兰表达式。 说明&#xff1a; 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说&#xff0c;表达式总会得出有效数值且不存…

简论重大科学发现诞生的时机

来源&#xff1a;秦四清科学网博客。链接地址&#xff1a;http://blog.sciencenet.cn/blog-575926-1263364.html 纵观科学史&#xff0c;几乎每一项重大科学发现诞生的时机需要&#xff1a;&#xff08;1&#xff09;当时已具备足够的知识和资料储备&#xff1b;&#xff08;2&…

数据库接口使用示例

考虑到我们的接口文档可能不是很清晰&#xff0c;昨天对接的时候也发现UI人员对我们的接口逻辑不太理解&#xff0c;所以这里写几个典型范例。虽然对接也快对接完了&#xff08;逃&#xff0c;但是这样至少免得以后忘记了。 &#xff08;注&#xff1a;这里的代码都测试过&…

python pip gpl_python pip怎么更新包

1、pip下载安装1.1 pip下载进入https://pypi.python.org/pypi/pip&#xff0c;下载 .tar.gz压缩包1.2 Linux安装pip# tar -xzvf pip-1.5.4.tar.gz 解压# cd pip-1.5.4 进入解压文件# python setup.py install 安装1.3 升级pippython -m pip install…

Leetcode--78. 子集

给定一组不含重复元素的整数数组 nums&#xff0c;返回该数组所有可能的子集&#xff08;幂集&#xff09;。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入: nums [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路&…

人工智能皇冠上的明珠:自然语言处理简介、最新进展、未来趋势

来源&#xff1a;图灵人工智能 编辑&#xff1a;TJUNLP 自然语言处理&#xff08;Nature Language Processing&#xff0c;NLP&#xff09;被誉为“人工智能皇冠上的明珠”&#xff0c;一方面表明了它的重要性&#xff0c;另一方面也显现出了它的技术难度。本文整理了自然语言…