- 博客(11)
- 收藏
- 关注
原创 Prim和Kruskal算法求最小生成树
两种算法求最小生成树都是基于贪心算法完成的Prim算法是通过选择节点来构建最小生成树的Kruskal算法是通过选择边来构建最小生成树的Kruskal适合于稀疏图Prim适合于稠密图。
2022-11-08 22:47:27
858
原创 最大公约数和最小公倍数学习总结
最大公因数,也称最大、最大公,指两个或多个共有中最大的一个。两个或多个公有的叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。互质数为 数学 中的一种概念,即。公因数只有1的两个非零自然数 ,叫做互质数。
2022-11-06 21:54:03
973
原创 动态规划学习-跳跃游戏
题目描述:动态规划分析:代码:class Solution {public: bool canJump(vector<int>& nums) { int n=nums.size(); vector<int> dp(n+1,0); dp[0]=1; for(int i=1;i<n;i++) { for(int j=i-1;j&g..
2022-05-12 19:43:03
338
原创 动态规划学习-整数划分
题目描述:给定一个正整数n,将其拆分为 k 个 正整数 的和(k >= 2),并使这些整数的乘积最大化。返回 你可以获得的最大乘积。示例 1:输入: n = 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例2:输入: n = 10输出: 36解释: 10 = 3 + 3 + 4, 3 ×3 ×4 = 36。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/integer-break...
2022-05-12 09:27:55
432
原创 动态规划学习-交错字符串
题目描述:给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:s = s1 + s2 + ... + snt = t1 + t2 + ... + tm|n - m| <= 1交错 是 s1 + t1 + s2 + t2 + s3 + t3 + ... 或者 t1 + s1 + t2 + s2 + t3 + s3 + ...注意:a + b 意味着
2022-05-12 09:11:44
158
原创 动态规划学习-最长递增子序列
题目描述:动态规划分析:代码:class Solution {public: int lengthOfLIS(vector<int>& nums) { int n=nums.size(); if(n==1)return 1; vector<int> dp(n,0); dp[0]=1; int res=0; for(int i=1;i<n;..
2022-05-09 17:34:34
231
原创 XMUTOJ-默罕默德的炸弹
Description炸弹是塔利班对付美军的武器之一。默罕默德在塔利班的主要任务是做炸弹。默罕默德所做的新型炸弹由若干个小炸弹组成,每个小炸弹有一个威力值,整个炸弹的威力值是组成这个炸弹的最大威力差的平方,即(max-min)^2,假设一个炸弹有5个小炸弹组成,威力分别为5 9 8 2 1,那么它的威力为(9-1)^2=64。时间紧任务多默罕默德的师傅兼老爸老默罕默德又不在,默罕默德不敢调整小炸弹的顺序,只能确定它们的分组。请你帮助默罕默德确定小炸药的分组,使制造出的炸弹拥有最大的威力和。Inpu
2022-05-08 21:49:31
451
原创 动态规划学习-单词拆分
题目描述:动态规划分析:代码:class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { unordered_set<string> m; int n=wordDict.size(); for(int i=0;i<n;i++) { m.emplace(wo
2022-05-08 20:07:59
216
原创 动态规划学习- 打家劫舍2
题目描述:动态规划分析:代码:class Solution {public: int rob(vector<int>& nums) { int n=nums.size(); if(n==0) return 0; if(n==1) return nums[0]; if(n==2) return max(nums[0]..
2022-05-08 19:52:25
153
原创 动态规划学习-买卖股票
一.题目描述:动态规划分析:代码:class Solution {public: int maxProfit(vector<int>& prices) { int n=prices.size(); vector<vector<int> > dp(n,vector<int>(2,0)); dp[0][1]=-prices[0]; for(int i=1;
2022-05-08 11:14:29
170
原创 动态规划学习-最长回文子串
自我学习草稿题目描述:动态规划分析:代码:class Solution {public: string longestPalindrome(string s) { int n=s.size(); if(n<2) return s; int maxlen=1; int begin=0; int dp[1005][1005]={1}; fo..
2022-05-08 10:33:06
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人