十七

leetcode152. 乘积最大子数组

分析minf存储最小值,maxf存储最大值,每次最大值可能由上一个位置转化而来或者当前位置,再或者从最小值(此时为负数得情况)。class Solution {public: int maxProduct(vector<int>& nums) { vector

十七 Published on 2022-03-07

leetcode97. 交错字符串

分析刚开始读完题目就想到了双指针,写完之后样例过不了,想了很久,没想明白错在哪里,看了题解用动态规划来着,大意是用f[i][j]表示s1[i]和s2[j]是否能合成s3[i+j],若s1[i]==p[i+j],那么f[i][j]=true的条件是f[i-1][j]=true&&s1[

十七 Published on 2022-02-27

leetcode96. 不同的二叉搜索树

分析假设 n 个节点存在二叉排序树的个数是 G (n),令 f(i) 为以 i 为根的二叉搜索树的个数,则G(n) = f(1) + f(2) + f(3) + f(4) + ... + f(n)G(n)=f(1)+f(2)+f(3)+f(4)+...+f(n)当 i 为根节点时,其左子树节点个数为

十七 Published on 2022-02-27

leetcode72. 编辑距离

分析与acwing同源,只是要注意下标问题,f[i][j]和word[i],word[j]要对齐class Solution {public: int minDistance(string word1, string word2) { int la=word1.length(),

十七 Published on 2022-02-25

leetcode70. 爬楼梯

分析第i层楼梯可从第i-1或第i-2层上来,用f[i]表示到达第i层楼梯的方法,那么f[i]=f[i-1]+f[i-2].class Solution {public: int climbStairs(int n) { int f[n+1]; if(n==1)ret

十七 Published on 2022-02-25

leetcode64. 最小路径和

分析f[i][j]表示从(0,0)坐标到(i,j)的最小和,每次转移都从f[i-1][j]或者f[i][j-1]转移过来,两者取最小值即可。class Solution {public: int minPathSum(vector<vector<int>>& g

十七 Published on 2022-02-24

leetcode63. 不同路径 II

分析将有障碍的地方路径设置为0即可class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m=obstacleGri

十七 Published on 2022-02-23
Previous Next