Skip to main content
看似一致的面积问题

看似一致的面积问题

这两道题看起来是比较类似的,都是求二维矩阵中的面积问题,但是两题的解题思路完全不一致。

第一道题可以使用使用二维dp数组表示构成最大正方形的最长边长,但是第二题不行,它边长是由长宽构成,如果使用动态规划,那么需要两个dp数组,一个代表最长宽,一个代表最长高。

如果用第二题dp代表最大矩形面积,这样又会没有递推关系。

但是关于矩形面积都有一个统一思路就是求,最长宽高,得到最长的宽高也就得到了最大矩形面积

221. 最大正方形——正方形最大面积


Y-aong...About 2 min算法笔记动态规划单调栈动态规划单调栈
8、字符串编辑距离

8、字符串编辑距离

392. 判断子序列——入门题(公共子序列问题)

给定字符串 st ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)


Y-aong...About 2 min算法算法字符串编辑距离动态规划
3、递增子序列

3、递增子序列

300. 最长递增子序列——子序列可以是不连续

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。


Y-aong...About 5 min算法算法递增子序列动态规划
2、打家劫舍

2、打家劫舍

198. 打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。


Y-aong...About 7 min算法算法打家劫舍动态规划
4、股票交易

4、股票交易

121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。


Y-aong...About 10 min算法算法股票交易动态规划
1、背包问题

1、背包问题

一、01 背包

有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。这是标准的背包问题。但是力扣上没有标准的背包问题,有的只是一些变形问题。

但是只有基本的背包问题理解清楚,其他的变形问题才能够完全明白,因此我们先拿标准的背包问题进行分析。

重量 价值
物品0 1 15
物品1 3 20
物品2 4 30

Y-aong...About 13 min算法算法背包问题动态规划
5、回文子串

5、回文子串

一、定义

回文字符串

  • 是正着读和倒过来读一样的字符串。
  • 和奇数数量有关
  • 倒叙挺好用的
  • 双指针和动态规划是一般的解题方法

二、验证回文串

125 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串


Y-aong...About 7 min算法回文子串动态规划双指针
6、矩形路径

6、矩形路径

62. 不同路径——基础类型

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

示例 1:


Y-aong...About 7 min算法算法矩形面积动态规划双指针
7、重复子数组问题

7、重复子数组问题

718. 最长重复子数组——连续子序列

给两个整数数组 nums1nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度

示例 1:


Y-aong...About 5 min算法算法重复子数组动态规划