力扣记录题思路(动态规划篇)

 

5.最长回文子串:

     (1)找中心:如果中心点的左边和右边值都相等,此子串就是一个回文子串,然后往外扩大去判断

     (2)动态规划,k表示 i 和 j 的间隔长度,i 表示子串的首字符,j 表示子串的尾字符,先找到子串长度为0,1,2的所有回文子串,然后其他的更大的回文子串会判断:

dp[i + 1][j - 1] && s[i] == s[j] 

10.正则表达式匹配(没想好)

44.通配符

 

32.最长有效括号:

    (1) 使用栈,遇到(就入栈,遇到)就出栈,结果数加2

    (2)动态规划,dp[i]表示长度为i的子串的有效个数,首先找到“......)”这个位置,此位置dp[i]=dp[i-2]+2

               然后再找"......))",如果s[i-dp[i-1]-1]是"(",则 dp[i]=dp[i-1]+dp[i-dp[i-1]-2]+2。dp[i-1]+2是前一个有效子串的有效个数

             是这种情况“()(())”

53.  最大子序和:

    (1)动态规划:  数组arr[-2,1,-3,4,-1,2,1,-5,4]    连续子数组 [4,-1,2,1] 的和最大,为 6。

            sum存储连续和,ans是最后结果,首先sum=0,如果sum>0, sum += arr[i]  如果sum<0,sum=arr[i] ,

            ans=max(sum,ans);

62. 不同路径:

 

 

 

你可能感兴趣的:(笔试题)