高頻演算法面試題學習總結 動態規劃3 換硬幣

2021-09-11 04:10:31 字數 920 閱讀 7828

題目:硬幣很多種,價值各不同。拼成乙個數。最少用幾個?

輸入:coins = target = 10

輸出:3

解釋:最少使用的硬幣數是3:包含兩個4和乙個2

思路分析:

1.貪心法:從最大硬幣值開始,逐步往低試。

反例:coins =     target = 20;    應輸出:4(4*5);貪心法輸出:6(11+5+4*1)。貪心法pass。

2.動態規劃:

解空間樹:

**實現:

#include#includeusing namespace std;

//備忘模型

int getmemo(vector& coins,vector& memo, int target)

} memo[target] = result;

} return memo[target];

}int getcoins(vector& coins,int target)

//演繹模型

int getcoins1(vector& coins, int target)

} memo[i] = result;

} return memo[target];

}int main()

); vectorcoins1();

cout << getcoins(coins1, 20) << endl;

cout << getcoins1(coins1, 20) << endl;

return 0;

}

箴言錄:

君子欲訥於言而敏於行。 

2023年力扣高頻演算法面試題4動態規劃

給定長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。說明 請不要使用除法,且在 o n 時間複雜度內完成此題。分析 對於某乙個數字,如果我們知道其前面所有數字的乘積,同時也知道後面所有的數乘...

MyBatis高頻面試題總結

什麼是sql注入?sql注入 sqli 是一種注入攻擊,可以執行惡意sql語句。它通過將任意sql 插入資料庫查詢,使攻擊者能夠完全控制web應用程式後面的資料庫伺服器。攻擊者可以使用sql注入漏洞繞過應用程式安全措施 可以繞過網頁或web應用程式的身份驗證和授權,並檢索整個sql資料庫的內容 還可...

面試題,硬幣 動態規劃

題目描述 給定數量不限的硬幣,幣值為25分 10分 5分和1分,編寫 計算n分有幾種表示法。結果可能會很大,你需要將結果模上1000000007 示例1 輸入 n 5 輸出 2 解釋 有兩種方式可以湊成總金額 5 55 1 1 1 1 1 示例2 輸入 n 10 輸出 4 解釋 有四種方式可以湊成總...