題目:硬幣很多種,價值各不同。拼成乙個數。最少用幾個?
輸入: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 解釋 有四種方式可以湊成總...