凑零钱问题
文章目錄
- 循環(huán)解法
各種湊零錢問題,非常有趣
背包問題之零錢兌換
(知乎上禁了,pdf上還有)
Leetcode 322 Coin Change
給定一系列的coins,和一個(gè)target,現(xiàn)在需要使用這些coins組成target,問最少需要的硬幣數(shù)是多少?
示例1:
輸入:Coins = [1,2,5], target = 11
輸出:3
示例2:
輸入:Coins = [2], target = 3
輸出:-1
時(shí)間緊任務(wù)重就不改輸入了,這個(gè)是示例一的,主要看思路【補(bǔ)救】把
Q:如果1,2,3,5,湊某個(gè)數(shù)n要x個(gè),完了n+1正好可以用2換1,或者3換2,這不就是x了嗎,不對(duì)了嗎?
2020.9.11解法
///不管怎么樣,邊界一定要好好返回
循環(huán)解法
int record[10000]={12};///初始化有問題,引以為戒!!!!!
#include<bits/stdc++.h> using namespace std; int record[10000]={12};///初始化有問題,引以為戒!!!!! int coins[3]= {1,2,5}; int coinslenth=3; int main() {for(int i=0;i<10000;i++){record[i]=12;}int target=11;record[0]=0;for(int n=0; n<=target+1; n++) ///n指當(dāng)前所求數(shù),i用來遍歷面額{for(int i=0; i<coinslenth; i++){if(n-coins[i]<0){continue;}record[n]=min(record[n],record[n-coins[i]]+1);}}cout<<record[11];return 0; }總結(jié)
- 上一篇: Maven-生命周期
- 下一篇: drf源码分析系列---权限