算法
文章平均质量分 81
力争做大牛的小王
努力探索互联网行业
展开
-
动态规划3
动态规划3 第一题 分割字符串使子串成为回文 例如 字符串s=“aab” 返回 1 因为回文分割结果【“aa”,“b”】切割一次生成 问题:字符串最小分割次数 状态F(i):字符串前i个字符最小分割次数 转移方程:F(i): j<i&&[j+1,i]是回文串 min{F(j)+1} 如果整体为回文串[1,i]F[i]=0 初始状态F(i)=i-1 最终的结果:F(n) 链接 class Solution { public: /** *原创 2021-08-05 15:57:34 · 98 阅读 · 0 评论 -
动态规划2
Dynamic Programming 第一题 三角形问题 链接 给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字, 例如,给出的三角形如下: [[20], [30,40], [60,50,70], [40,10,80,30]] 最小的从顶部到底部的路径和是20 + 30 + 50 + 10 = 110。 注意如果你能只用O(N)的额外的空间来完成这项工作的话,就可以得到附加分,其中N是三角形中的行总数。 问题:从(0,0)到达最后一行(i, j)最小路径 F(i原创 2021-08-05 09:54:04 · 123 阅读 · 0 评论 -
动归
Dynamic Programming DP定义:动态规划是分治的延伸,大事化小,小事化了。 三个特点:把原来的问题分成几个相似的问题;所有问题只要一次就可以解决存储子问题的解 **四要素:**状态定义 状态间的转移方程 状态的初始化 返回的结果 使用的场景: 最值,可不可行 是不是 方案的个数 第一题 Fibonacci 斐波那契数 斐波那契数 public class Solution { public int Fibonacci(int n) { if(n原创 2021-05-17 15:58:40 · 169 阅读 · 0 评论