当前位置:网站首页>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
边栏推荐
- JVM_ 15_ Concepts related to garbage collection
- 网易智企逆势进场,游戏工业化有了新可能
- Unity VR solves the problem that the handle ray keeps flashing after touching the button of the UI
- Obstacle detection
- Huawei Hrbrid interface and VLAN division based on IP
- Nmap: network detection tool and security / port scanner
- Folio.ink 免费、快速、易用的图片分享工具
- [技术发展-28]:信息通信网大全、新的技术形态、信息通信行业高质量发展概览
- A glimpse of spir-v
- What is weak reference? What are the weak reference data types in ES6? What are weak references in JS?
猜你喜欢
leetcode刷题_平方数之和
[技术发展-28]:信息通信网大全、新的技术形态、信息通信行业高质量发展概览
How does the crystal oscillator vibrate?
A Cooperative Approach to Particle Swarm Optimization
[understanding of opportunity-39]: Guiguzi - Chapter 5 flying clamp - warning 2: there are six types of praise. Be careful to enjoy praise as fish enjoy bait.
What is the most suitable book for programmers to engage in open source?
Exciting, 2022 open atom global open source summit registration is hot
Finding the nearest common ancestor of binary tree by recursion
一图看懂!为什么学校教了你Coding但还是不会的原因...
Convert binary search tree into cumulative tree (reverse middle order traversal)
随机推荐
Vulhub vulnerability recurrence 75_ XStream
Leetcode 剑指 Offer 59 - II. 队列的最大值
[Arduino syntax - structure]
Mobilenet series (5): use pytorch to build mobilenetv3 and learn and train based on migration
Finding the nearest common ancestor of binary tree by recursion
Leetcode 208. 实现 Trie (前缀树)
Distributed base theory
What is weak reference? What are the weak reference data types in ES6? What are weak references in JS?
How to see the K-line chart of gold price trend?
Leetcode1961. 检查字符串是否为数组前缀
c#网页打开winform exe
Une image! Pourquoi l'école t'a - t - elle appris à coder, mais pourquoi pas...
JVM_ 15_ Concepts related to garbage collection
Pbootcms plug-in automatically collects fake original free plug-ins
CocoaPods could not find compatible versions for pod 'Firebase/CoreOnly'
Dede collection plug-in free collection release push plug-in
Live video source code, realize local storage of search history
Three methods of script about login and cookies
Building core knowledge points
[day 30] given an integer n, find the sum of its factors