当前位置:网站首页>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
边栏推荐
- MATLB|实时机会约束决策及其在电力系统中的应用
- leetcode刷题_平方数之和
- Daily practice - February 13, 2022
- Differences between standard library functions and operators
- General operation method of spot Silver
- 037 PHP login, registration, message, personal Center Design
- Test de vulnérabilité de téléchargement de fichiers basé sur dvwa
- 一圖看懂!為什麼學校教了你Coding但還是不會的原因...
- Ordinary people end up in Global trade, and a new round of structural opportunities emerge
- 晶振是如何起振的?
猜你喜欢
【已解决】如何生成漂亮的静态文档说明页
Differences between standard library functions and operators
ADS-NPU芯片架构设计的五大挑战
VMware Tools installation error: unable to automatically install vsock driver
After 95, the CV engineer posted the payroll and made up this. It's really fragrant
Ubantu check cudnn and CUDA versions
Alibaba-Canal使用详解(排坑版)_MySQL与ES数据同步
DOM introduction
Some features of ECMAScript
Hcip---ipv6 experiment
随机推荐
ThreeDPoseTracker项目解析
ClickOnce 不支持请求执行级别“requireAdministrator”
Dede collection plug-in free collection release push plug-in
电气数据|IEEE118(含风能太阳能)
Leetcode study - day 35
Gartner发布2022-2023年八大网络安全趋势预测,零信任是起点,法规覆盖更广
3D vision - 4 Getting started with gesture recognition - using mediapipe includes single frame and real time video
3D模型格式汇总
Live video source code, realize local storage of search history
ORA-00030
一图看懂!为什么学校教了你Coding但还是不会的原因...
The growth path of test / development programmers, the problem of thinking about the overall situation
Recommended areas - ways to explore users' future interests
ORA-00030
Recursive method converts ordered array into binary search tree
Unity | 实现面部驱动的两种方式
[技术发展-28]:信息通信网大全、新的技术形态、信息通信行业高质量发展概览
Building core knowledge points
Mobilenet series (5): use pytorch to build mobilenetv3 and learn and train based on migration
Alibaba-Canal使用详解(排坑版)_MySQL与ES数据同步