当前位置:网站首页>LeetCode 322. Change exchange (dynamic planning)
LeetCode 322. Change exchange (dynamic planning)
2022-07-06 01:25:00 【zjsru_ Beginner】
Subject portal :322. Change for
Topic details :
Give you an array of integers coins , Coins of different denominations ; And an integer amount , Represents the total amount .
Calculate and return the amount needed to make up the total amount The minimum number of coins . If no combination of coins can make up the total amount , return -1 .
You can think of the number of coins of each kind as infinite .
Example 1:
Input :coins = [1, 2, 5], amount = 11
Output :3
explain :11 = 5 + 5 + 1
Example 2:Input :coins = [2], amount = 3
Output :-1
Example 3:Input :coins = [1], amount = 0
Output :0Tips :
1 <= coins.length <= 12
1 <= coins[i] <= 231 - 1
0 <= amount <= 104
Topic analysis :
After a simple analysis, it is found that it is very similar to a complete backpack , The number of coins is infinite , But the total amount ( The capacity of the backpack ) It is the same. , We are required to use the least number of coins , So we use dynamic programming to solve this problem .
First determine dp Array , The array stores the minimum number of coins required for the total amount we give , The subscript of the array is the total amount given , So we should finally return the array with the subscript amount Value , namely dp [amount];
Next, determine the recurrence equation :
Take an example to analyze :
Input :coins = [1, 2, 5], amount = 11
Output :3
The total amount collected 11 The minimum number of coins required is dp[11 - 5] + 1( Take the denomination as 5 The coin of , Number of coins +1), and 11-5 by 6, The total amount is 6 The minimum number of coins required is dp[6 - 5] + 1( Then take the denomination as 5 The coin of , Number of coins +1), And so on until the amount is 0. We found that 6 Also can be 3 The denomination is 2 Coins of , But at this time, the number of coins taken is greater than that used The denomination is 5 The coin plus the denomination is 1 The coin of 2 gold , Therefore, we should constantly select the smallest one to ensure the total amount The least number of coins . So the recurrence equation is dp[ i ]=min(dp[ i - coins[ j ] ] + 1,dp[ i ])(i For the amount that needs to be scraped up )
dp[ 0 ]=0, Other values are initialized to the maximum value to avoid being overwritten in the comparison .
Code (c++):
class Solution {
public:
int max=999999999;
int coinChange(vector<int>& coins, int amount) {
vector<int>dp(amount+1,max);
dp[0]=0;// The total amount is 0 You don't need a coin
int length=coins.size();
for(int i=1;i<=amount;i++)// From the amount 1 Start to the requested amount amount
{
for(int j=0;j<length;j++)
{
if(coins[j]<=i) The denomination of the coin is less than the current amount
dp[i]=min(dp[i-coins[j]]+1,dp[i]);
}
}
if(dp[amount]==max)
return -1;
else
return dp[amount];
}
};
Computer 204 zjr
边栏推荐
- Finding the nearest common ancestor of binary search tree by recursion
- Leetcode study - day 35
- leetcode刷题_平方数之和
- Docker compose configures MySQL and realizes remote connection
- 3D模型格式汇总
- Kotlin basics 1
- Convert binary search tree into cumulative tree (reverse middle order traversal)
- [Arduino syntax - structure]
- Xunrui CMS plug-in automatically collects fake original free plug-ins
- ThreeDPoseTracker项目解析
猜你喜欢
基于DVWA的文件上传漏洞测试
Vulhub vulnerability recurrence 75_ XStream
037 PHP login, registration, message, personal Center Design
Pbootcms plug-in automatically collects fake original free plug-ins
WordPress collection plug-in automatically collects fake original free plug-ins
Test de vulnérabilité de téléchargement de fichiers basé sur dvwa
ORA-00030
c#网页打开winform exe
Xunrui CMS plug-in automatically collects fake original free plug-ins
Blue Bridge Cup embedded stm32g431 - the real topic and code of the eighth provincial competition
随机推荐
After 95, the CV engineer posted the payroll and made up this. It's really fragrant
JMeter BeanShell的基本用法 一下语法只能在beanshell中使用
Finding the nearest common ancestor of binary tree by recursion
【已解决】如何生成漂亮的静态文档说明页
有谁知道 达梦数据库表的列的数据类型 精度怎么修改呀
Mlsys 2020 | fedprox: Federation optimization of heterogeneous networks
Superfluid_ HQ hacked analysis
037 PHP login, registration, message, personal Center Design
Recursive method converts ordered array into binary search tree
SCM Chinese data distribution
Leetcode1961. Check whether the string is an array prefix
Nmap: network detection tool and security / port scanner
关于softmax函数的见解
Tcpdump: monitor network traffic
Who knows how to modify the data type accuracy of the columns in the database table of Damon
视频直播源码,实现本地存储搜索历史记录
How to see the K-line chart of gold price trend?
Code review concerns
GNSS terminology
Recursive method to realize the insertion operation in binary search tree