当前位置:网站首页>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
边栏推荐
- 基于DVWA的文件上传漏洞测试
- internship:项目代码所涉及陌生注解及其作用
- Crawler request module
- Exciting, 2022 open atom global open source summit registration is hot
- Code Review关注点
- Blue Bridge Cup embedded stm32g431 - the real topic and code of the eighth provincial competition
- Convert binary search tree into cumulative tree (reverse middle order traversal)
- [le plus complet du réseau] | interprétation complète de MySQL explicite
- Recursive method converts ordered array into binary search tree
- 【全網最全】 |MySQL EXPLAIN 完全解讀
猜你喜欢
Superfluid_ HQ hacked analysis
MUX VLAN configuration
Pbootcms plug-in automatically collects fake original free plug-ins
3D model format summary
伦敦银走势中的假突破
ThreeDPoseTracker项目解析
Ordinary people end up in Global trade, and a new round of structural opportunities emerge
Mobilenet series (5): use pytorch to build mobilenetv3 and learn and train based on migration
VMware Tools安装报错:无法自动安装VSock驱动程序
[pat (basic level) practice] - [simple mathematics] 1062 simplest fraction
随机推荐
ADS-NPU芯片架构设计的五大挑战
[detailed] several ways to quickly realize object mapping
Daily practice - February 13, 2022
SSH login is stuck and disconnected
Ubantu check cudnn and CUDA versions
Code Review关注点
A Cooperative Approach to Particle Swarm Optimization
Alibaba-Canal使用详解(排坑版)_MySQL与ES数据同步
leetcode刷题_反转字符串中的元音字母
Gartner发布2022-2023年八大网络安全趋势预测,零信任是起点,法规覆盖更广
[技术发展-28]:信息通信网大全、新的技术形态、信息通信行业高质量发展概览
DOM introduction
【全網最全】 |MySQL EXPLAIN 完全解讀
基于DVWA的文件上传漏洞测试
Format code_ What does formatting code mean
有谁知道 达梦数据库表的列的数据类型 精度怎么修改呀
一圖看懂!為什麼學校教了你Coding但還是不會的原因...
282. Stone consolidation (interval DP)
leetcode刷题_平方数之和
PHP error what is an error?