动态规划
赟家小菜鸟
这个作者很懒,什么都没留下…
展开
-
力扣174.地下城游戏
题目:biubiu题意:一个矩阵,需要从左上的点到达右下的最后一点,只能往右或往下走,每个矩阵都有一个权值,要求在到达这个矩阵的时候,生命值必须大于0,问初始值最小。到达矩阵的某个点时我们要求他的生命值必须大于0,在满足这个前提下,到达这个点有两个路经,因为矩阵拥有权值,那么在达到这个点时他就拥有两种生命值,他的初始值肯定也是不同,而我们需要的是最小的初始值,但是如果只观察此刻的初始值,而不考虑他的生命值,那到终点时的结果是否是最优结果呢?因为此时的生命值是对后面的有影响的,在考虑这两点的要求下,如何获原创 2022-03-20 15:38:46 · 4230 阅读 · 0 评论 -
力扣135.分发糖果
题目:biubiu题意:老师分发糖果,要求每个孩子最少有一颗糖果,但是要求相邻的孩子分数高的孩子得到的糖果多。方法一:为了保证相邻的孩子分数高的孩子得到的糖果多,我先遍历一遍,对于出现的升序先分配糖果,如果是降序或者分数相等,先分配一个糖果,然后逆序遍历一遍,同样对升序也就是降序进行处理。class Solution {public: int candy(vector<int>& ratings) { int ans=0; vector&l原创 2021-12-07 17:12:50 · 280 阅读 · 0 评论 -
力扣115.不同的子序列
题目:biubiu题意:给字符串s和t,现在问s中有多少子串t,不改变字符的顺序,对是字符串中的某个元素可以删除或不变,就得到了s的子串。例如:s=“babgbag”,t=“bag”,那么符合题意的子串有013、016、056、256、456,数字代表下标。动态规划:动态规划要找到动态方程,官方题解给的思路。class Solution {public: int numDistinct(string s, string t) { int m = s.length(), n原创 2021-11-29 20:07:47 · 156 阅读 · 0 评论 -
力扣91.解码方法
题目:biubiu题意:给一个数字的字符串,1-26分别对应26个大写字符,现在要求对这个字符串解码,问现在有多少解码情况。思路1:深搜暴力,可以解决这个问题,但是时间复杂度过大。class Solution {public: void dfs(vector<int>p, int x) { if (x == p.size()) { this->ans++; return; } dfs(p, x + 1); if (x+1<p.size()&原创 2021-11-21 12:39:50 · 273 阅读 · 0 评论 -
力扣10.正则表达式匹配
题目:传送门**题意:**给你两个字符串s和p,p字符串中有’.‘和’‘这两种特殊字符,’.‘可以匹配任意字符,’‘代表它的前一个字符的个数,可以是0也可以是无数个,现在问s和p是否匹配,题意这点比较模糊,题目中说涵盖,涵盖我最开始的理解是包含,但是不是,题目的意思是通过对这两个特殊字符的转换使两个字符串相等。**思考:**我最开始的思路是使用函数递归,但是当时我理解的题意是包含,对于’‘这个情况不能很好的处理,然后我的方法是动态规划,开辟dp[x][y]这样一个二维数组,dp[x][y]代表的意思就是原创 2021-06-16 19:36:36 · 250 阅读 · 0 评论 -
力扣5.最长回文子串
题目:传送门**题意:**这个题给了一个字符串,然后在字符串中找到一个最长的回文子串并打印输出,首先我们要知道什么是回文串,回文串就是这个字符串的正序和逆序是相同的,例如"abba",这就是一个简单的回文串。我们可以观察这个回文串,就会发现回文串是一个对称的一个字符串,那么我们该如何在一个字符串中找到一个最长的回文串呢?我们就可以使用一种中心扩散的思想,遍历字符串,将遍历的当前位当做回文串的中心点,然后向左右两边开始扩散,我们就可以得到这个回文串,但是我也会想到,如果这个回文串是偶数呢,那么我们就要判断一原创 2021-06-05 14:21:18 · 178 阅读 · 3 评论