【无标题】

有时候增加一个全局变量也可以大大的简化逻辑

5. 最长回文子串
感觉这个题要往心里刻一刻,动态规划的方案,最开始想的是状态状态转移方程是f(n) 代表了以n结尾的最长会问串,但是这样的话,是无法从f(n)推断出来f(n+1)的,直观上觉得可以,实际上不可以,所以可能需要增加一维状态,就是f(i,n)代表了s[i:n] 是否是回文串,这样的话状态才能涵盖所有的情况。在当前状态不能涵盖所有的情况下,试试修改一下状态,增加一下维度,这或许是一个比较好的方法。
这个问题,说白了,还是状态没有整对,导致状态转移方程不对,我们的状态并不一定是直接的问题的解,可能需要通过遍历状态才能真正找到问题的解。就像这里的状态实际上是s[i;j] 是不是回文串,通过遍历i来逐步得到。而不是直接定义最长回文子串来求解。
单词拆分和回文子序列一样,只是回文子序列咋一看的话掩盖了问题的复杂性,其实是需要很多子的中间状态来得到最终的状态的
这个和最长括号要对比着来看
最长有效括号
这种对称的,要想到是否可以使用栈来规划处理
k个链表合并
31. 下一个排列-有点找规律,trick略多

这个问题的主要learning是,我可以把步骤做的更简单,但是步骤多一些,这样不就更容易一些了么

# 这个逻辑上稍微复杂一些
# 1. 从后往前,查找到第一个降序序列位置i
# 2. 从len到i查找第一个大于i的数字,交换 (这里得到的learning就是不要着急,多加异步判断也没有啥啊)
# 3. i->len需要变成最小的,两两交换即可

33. 搜索旋转排序数组

旋转数组的最小值对比
39. 组合总和
不重复,还是要注意哦,所以不能回头取值
42. 接雨水
对比一下这个那个数组容量的问题,感觉有点相似
48. 旋转图像-好难-找规律

55. 跳跃游戏-耗时超长

62. 不同路径-这么简单,为何脑子瘸了

75. 颜色分类-细节也要处理哦-数组双指针的处理逻辑-3指针的并不好搞啊

这个看题解的时候说用的是单指针,你可以思考一下啥叫单指针,通过单指针变形的双指针确实更容易写出来,但是像你最开始用的双指针的方式就比较难以写出来了。
76. 最小覆盖子串
不要怕复杂,先试试看看能否想出来一个可行解
84. 柱状图中最大的矩形-这个需要和接雨水之类的联合起来思考,其实不是很难,主要是思路上分解问题,同样存在并不是所有的子问题都是正确的问题

85. 最大矩形-柱状图变形

94. 二叉树的中序遍历-熟悉一下迭代方式
96. 不同的二叉搜索树-在没有头绪的时候想想动态规划-数据结构处理一下也更容易使用和理解

124. 二叉树中的最大路径和-hard自己一遍ac了 定义一个全局变量,这种方式也是很有效啊,简化了返回参数的个数

128. 最长连续序列-第一次做的时候看到时间要求直接蒙了,先想想穷举可以不,然后再优化就行了,别怕

139. 单词拆分-这个动态规划的题目不算很难,就是要判断清楚状态转移方程,先不要求取最好的解法,看看可以用穷举的方式

148. 排序链表-有点忘了

207. 课程表-图的暂时有点搞不动了,先不整图了

208. 实现 Trie (前缀树)

这个实际上是类似于桶排序的标记法,所以可能有点不适应,算是一种思维方式,需要去适应一下

215. 数组中的第K个最大元素-稍微变形了一下,这个可以多做两遍

快排中的partion中的低位一定要有等于,因为选择的是左侧

226. 翻转二叉树-紧张到忘词

279. 完全平方数-这个竟然做出来了,需要注意的是状态转移方程,和前面的区分

287. 寻找重复数-有点难搞战略放弃

301. 删除无效的括号-转化为之前的有重复字符串的排列组合问题

394. 字符串解码

娃子,栈里面可以存分块的数据哦

406. 根据身高重建队列 吧问题拆解为简单的问题的组合

416. 分割等和子集 背包问题过久了又忘了
讨论清楚条件,边界,是否会有负值等
讲一下思路,是否可以,或者说希望给一些提示
也可以先思考一下暴力的解法
分析一下时间复杂度

有时候使用hashmap, hashset可以大大降低难度,还有大顶堆,小顶堆,stack等的应用

总结整理一下背包问题

感觉目前分为备选集是无限的和有限的两类,
无限的代表题目是硬币凑整题目
322. 零钱兑换

有限的题目就是背包问题和416. 分割等和子集

目前看有限的复杂度要远远大于无限的复杂度,因为有限的dp状态实际上只有一个变量,就是当前的钱数(或者说背包的容量)
但是有限的背包问题,状态是当前的背包容量,以及当前可以选的子集

感觉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值