首页 > 其他分享 >518. 零钱兑换 II(leetcode)

518. 零钱兑换 II(leetcode)

时间:2024-09-03 16:53:47浏览次数:3  
标签:int coins 选法 II 518 amount leetcode

https://leetcode.cn/problems/coin-change-ii/description/
可以直接考虑用完全背包的传统二维做法

class Solution {
    public int change(int amount, int[] coins) {
        // 题意就是一个完全背包问题
        // f[i][j]表示前i个数中选,体积等于j的最大选法种数,答案就是f[n][amount]
        // 以第i个数选多少个来划分子集
        // f[i][j] = f[i-1][j] + f[i][j-conis[i]]
        // f[0][0]=1; // 初值,只有一种选法
        int N = 310;
        int[][] f=new int[N][5010];
        f[0][0]=1; // 什么也不选也是一种选法
        for(int i=1;i<=coins.length;i++)
            for(int j=0;j<=amount;j++)
            {
                // 这里coins需要偏移一位
                if(j>=coins[i-1])f[i][j]=f[i-1][j]+f[i][j-coins[i-1]];
                else f[i][j]=f[i-1][j];
            }
        return f[coins.length][amount];
    }
}

 

标签:int,coins,选法,II,518,amount,leetcode
From: https://www.cnblogs.com/lxl-233/p/18394924

相关文章

  • LeetCode_0028. 找出字符串第一个匹配项的下标,KMP算法的实现
    题目描述  给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。示例1:输入:haystack="sadbutsad",needle="sad"输出:0解释:"sad"在下标0和6处匹......
  • Java毕设项目II基于Java的企业OA管理系统
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在当今快节奏的商务环境中,企业的高效运作......
  • Java毕设项目II基于Java的英语知识应用网站
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在数字化时代,英语作为国际交流的桥梁,其学......
  • 代码随想录算法训练营|Day01 LeetCode 704.二分查找,27.移除元素,977.有序数组的平方
    数组理论基础数组是存放在连续空间上的相同类型数据的集合数组的元素是不能删的,只能覆盖704.二分查找LeetCode:704.有序数组的平方classSolution{public:intsearch(vector<int>&nums,inttarget){intlength=nums.size();inti=0......
  • Java LeetCode练习
        LeetCodeExercise        807.保持城市天际线    题解:贪心        从左侧和右侧看,城市天际线等于矩阵grid的每一行的建筑物高度最大值;从顶部和底部看,城市天际线等于矩阵grid的每一列的建筑物高度最大值。只要不改变每一行和每一列......
  • P10878 [JRKSJ R9] 在相思树下 III 题解
    Description给定一个长为\(n\)的序列\(a_{1\dotsn}\),需要对它进行两种操作共\(n-1\)次。对一个长度为\(l\)的序列\(b_{1\dotsl}\)进行一次操作将会把序列变为一个长为\(l-1\)的序列\(c_{1\dotsl-1}\):操作一中,\(\foralli\in[1,l),c_i=\max(b_i,b_{i+1})\);操作......
  • 1049. 最后一块石头的重量 II(leetcode)
    https://leetcode.cn/problems/last-stone-weight-ii/description/思路较为巧妙的dp题,关键点在于如何将问题转化为01背包,有点贪心的思想主要是划分为两堆尽可能相等的石碓,然后判断能否凑出这个偏小的石碓(若干石头中选,能否选出这个价值)这里根据f[i]的定义可以有两种做法,1.f......
  • Leetcode——1.合并有序数组
    给你两个按非递减顺序排列的整数数组nums1_和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2_到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初......
  • 每日一题:Leetcode-224 基本计算器
    力扣题目解题思路java代码力扣题目:给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。示例1:输入:s="1+1"输出:2示例2:输入:s="2-1+2"输出:3示例3:输入:s......
  • 【LeetCode】两数之和
    题目:在数组中找到2个数之和等于给定值的数字,结果返回2个数字在数组中的下标。要求时间复杂度为 O(n)。解题分析:作者:halfrost链接:https://leetcode.cn/leetbook/read/leetcode-cookbook/5lu4og/顺序扫描数组,对每一个元素,在map中找能组合给定值的另一半数字,如果找......