刷题记录
真正的学徒都有一颗大师的心
不要这么容易就想放弃
展开
-
动态规划-5最长回文子串
!!!动态规划只能这样的消耗了吗,一起讨论,内存用了好多 1.方法说明 为什么i从大到小,j从i到大?因为i和j所指之间是回文子串的前提是,dp[i+1][j-1],即i的后一位,j的前一位之间的是回文子串,再加上i和j所指是相同的,则可判定为回文子串。 这落在二维数组中,就是从下往上,从左往右了。 2.函数说明 substr(size_type _Off = 0,size_type _Count = npos)函数 一种构造string的方法 形式 : s.substr(pos, len) 返回值:原创 2022-05-21 16:17:10 · 124 阅读 · 0 评论 -
双指针-11盛最多水的容器
1.为什么是双指针 因为双指针代表的是可以作为容器边界的所有位置的范围。 2.面积求法说明 j-i代表底长,min(weight[i],weight[j])代表高 maxarea=max(maxarea,min(weight[i],weight[j])*(j-i) 面积是由短板和两个板之间的距离决定的。 3.为什么先移动短板 情况1 移动长板,min(weight[i],weight[j])的值可能不变或者变小。不变:长板还是长板,变小:长板移动后变成比原先短板更短的短板。但是,j-i,即底长肯定会变小,所原创 2022-05-21 16:16:12 · 66 阅读 · 0 评论 -
动态规划-322零钱兑换
翻了半天没找到c++的记忆化搜索,我在纠结记忆数据的数组是作为共享变量,还是作为参数一直在函数中传递。 首先我想在函数外定义个vector,然后在函数内resize大小并赋值,可以免除help在递归函数中传递,但是失败了。后来我尝试了int *help;在函数内new空间,但是也失败了。怎么办呢?没有完成我想的那样,但是下面的也可以通过题解。,,,,直接递归超时了。 1递归 int coinChange(vector<int>& coins, int amount) {原创 2022-05-21 16:14:18 · 181 阅读 · 0 评论