算法:找零钱322. Coin Change

算法:找零钱322. Coin Change


You are given an integer array coins representing coins of different denominations and an integer amount representing a total amount of money.

Return the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1.

You may assume that you have an infinite number of each kind of coin.

Example 1:

Input: coins = [1,2,5], amount = 11
Output: 3
Explanation: 11 = 5 + 5 + 1

Example 2:

Input: coins = [2], amount = 3
Output: -1

Example 3:

Input: coins = [1], amount = 0
Output: 0

Example 4:

Input: coins = [1], amount = 1
Output: 1

Example 5:

Input: coins = [1], amount = 2
Output: 2

Constraints:

1 <= coins.length <= 12
1 <= coins[i] <= 231 - 1
0 <= amount <= 104

动态规划解法

动态规划转换公式dp[i] = Math.min(dp[i], dp[i - coin] + 1);
这里的要点是,如果有值,那么一定要比默认值小。并且要遍历完所有的值。

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

Read more

⭐️最全面的Windows Vista原版系统ISO镜像下载

⭐️最全面的Windows Vista原版系统ISO镜像下载

最全面的Windows Vista原版系统ISO镜像下载 * * * * * 一、Windows Vista Windows Vista是微软公司2006年11月30日正式发布的操作系统。 Windows Vista内置DirectX 10,提升显卡的画质和速度,音频驱动工作在用户模式,提高稳定性、速度和音频保真度,内置语音识别模块,带有针对每个应用程序的音量调节,媒体中心模块被内置在Home Premium和Ultimate中,用户界面更新并支持Cable Card,可以观看有线高清视频。 截至2009年6月30日,Windows Vista已更新至Service Pack 2版本。2017年4月11日,微软正式终止对Windows Vista的一切支持。 1.发布历程 2006年11月30日,Windows Vista在北京发布。 2007年1月30日,Windows Vista零售版本在美国纽约时代广场发布,并正式向普通用户出售。 2011年7月13日,微软正式停止对安装Windows Vista Service Pack 1(SP

By Ne0inhk
⭐️BIOS和CMOS的全面知识?是什么?怎么设置操作?

⭐️BIOS和CMOS的全面知识?是什么?怎么设置操作?

⭐️BIOS和CMOS的全面知识?是什么?怎么设置操作? * * * * * * * * * 一、BIOS基础篇 1.BIOS的来历 简单的说,1973年,加里·基尔代尔用高阶语言PL/M写出CP/M(这个CP/M是史上第一个磁盘操作系统)。而不同的品牌机器需要跟第一版的CP/M兼容则需要大量的修改工作,1976年,为了不用修改CP/M,他创造了BIOS,也就是让CP/M架在一个专门控制输入/输出的程序BIOS(Basic Input/Output System),这样,就可以让同一个CP/M运用在不同的品牌机器上面了。 2.什么是BIOS BIOS,“Basic Input/Output System”的缩写,中文翻译为“基本输入/输出系统”。它直接对计算机系统中的输入输出设备进行设备硬件控制,是连接软件程序和硬件设备之间的一组程序。 3.BIOS的种类及编码规律 BIOS种类太多,各公司出品不一,我只能说下当前几种比较流行的BIOS Award

By Ne0inhk
⭐️VMware Workstation17.0虚拟机安装MS-DOS 7.1磁盘操作系统(完整详细步骤图文教程)

⭐️VMware Workstation17.0虚拟机安装MS-DOS 7.1磁盘操作系统(完整详细步骤图文教程)

VMware Workstation17.0虚拟机安装MS-DOS 7.1磁盘操作系统(完整详细步骤图文教程) * * * 一、MS-DOS MS-DOS(微软磁盘操作系统),是美国微软公司提供的磁盘操作系统。在美国微软公司推出Windows1.0、Windows3.0、1995年8月24日推出的操作系统Windows 95以前,磁盘操作系统是IBM PC及兼容机中的最基本配备,而MS-DOS则是个人电脑中最普遍使用的磁盘操作系统之一。 1.MS-DOS简介 最基本的MS-DOS系统由一个基于主引导记录(硬盘才有主引导记录,软碟没有主引导记录)启动磁区位于第0轨的磁区中,内容上与硬盘的MBR略有不同的BOOT引导程序和三个文件模块组成。这三个模块是输入输出模块(IO.SYS)、文件管理模块(MSDOS.SYS)及命令解释模块。(不过在MS-DOS 7.0中,MSDOS.SYS被改为启动配置文件,而IO.SYS增加了MSDOS.SYS的功能)除此之外,微软还在零售的MS-DOS系统包中加入了若干标准的外部程序(即外部命令),这才与内部命令一同构建起一

By Ne0inhk
1985年到2024年的Windows成长史1.0\2\3\NT\95\4\98\2000\ME\XP\03\Vista\08\ThinPC\2012\7\8\12\10\16\19\11\22\12

1985年到2024年的Windows成长史1.0\2\3\NT\95\4\98\2000\ME\XP\03\Vista\08\ThinPC\2012\7\8\12\10\16\19\11\22\12

Windows成长史 * * * * * * 第一篇 Windows起始简介 1.Windows简介 Microsoft Windows,美国微软公司研发的操作系统,问世于1985年,起初仅是Microsoft-DOS模拟环境,后续系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。 Windows采用了图形化模式GUI,比起从前的DOS需要键入指令使用的方式更为人性化。随着电脑硬件和软件的不断升级,微软的Windows也在不断升级,从架构的16位、32位再到64位, 系统版本从最初的Windows 1.0 到大家熟知的Windows 95、Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server服务器企业级操作系统,不断持续更新,微软一直在致力于Windows操作系统的开发和完善。

By Ne0inhk