摘要: 题目:LCR 165. 解密数字 动态规划法(像这种只问你解密数字有多少种结果的,而不是让你列出每一个结果,往往可以采用动态规划) class Solution { public: int crackNumber(int ciphertext) { string str = to_string(ci 阅读全文
posted @ 2025-03-21 21:09 Cheauncey 阅读(56) 评论(0) 推荐(0)
摘要: 题目:乒乓球比赛(武汉大学机试真题):甲={'a','b','c'}、乙={'x','y','z'}两队进行比赛,一直a不和x比,c不和x和z比,请问所有可能的比赛安排 //应该使用全排列 列出所有的比赛结果,再输出满足要求的对局 //但还有一种取巧的方法实现 使用库函数next_Permutati 阅读全文
posted @ 2025-03-21 16:50 Cheauncey 阅读(24) 评论(0) 推荐(0)
摘要: 题目:17. 电话号码的字母组合 class Solution { public: string path; vector<string> finalPath; vector<string> dictionary = {"abc", "def", "ghi", "jkl", "mno", "pqrs 阅读全文
posted @ 2025-03-21 16:18 Cheauncey 阅读(20) 评论(0) 推荐(0)
摘要: 题目:78.子集 //实际上就是k=0,1,2,,,nums.size()的组合问题 class Solution { public: vector<int> path; vector<vector<int>> finalPath; void backtracking(vector<int> num 阅读全文
posted @ 2025-03-21 16:17 Cheauncey 阅读(20) 评论(0) 推荐(0)
摘要: 题目:使用{1,2,5}分的硬币凑1元钱,问共有多少种凑法? 注意1,1,2凑4分钱和2,1,1凑4分钱是一样的。 回溯法: void backtracking(int sum,int startIndex,int &amount,vector<int> &coins){ if(sum==amoun 阅读全文
posted @ 2025-03-21 15:50 Cheauncey 阅读(30) 评论(0) 推荐(0)
摘要: 322. 零钱兑换: 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。 【错误解法】尝试贪心算法,但是逻辑有问题,如: 阅读全文
posted @ 2025-03-20 21:56 Cheauncey 阅读(113) 评论(0) 推荐(0)
摘要: 题目:46. 全排列 class Solution { public: //【【【DevC++中类内的成员往往无法调试,所以上机时尽量不要定义类,直接写函数,回溯法使用的path、finalPath、nums等直接定义为全局变量即可】】】 vector<int> path; vector<vecto 阅读全文
posted @ 2025-03-19 22:26 Cheauncey 阅读(20) 评论(0) 推荐(0)
摘要: 198.打家劫舍 回溯法: class Solution { public: int maxMoney = 0; void backtracking(int index, int& sum, vector<int>& nums) { // index表示上一个偷过的房屋号 if (index +2> 阅读全文
posted @ 2025-03-19 22:26 Cheauncey 阅读(12) 评论(0) 推荐(0)