- 博客(52)
- 收藏
- 关注
原创 day60总结
目前做到了做过的题或者相似类型能反应它属于什么类型,我大概要用什么思路去解决,比方说要动规,贪心还是什么。- 当然了,大部分的题完全依靠自己再写一次,是比较困难的,毕竟本人水平摆在那里。- 计划二刷不只是局限于解题了,在做出来的基础上,自己再多加总结。- 如果你看见了我写的这些文字了,那么陌生人,你好,你也加油。- 基本上就是以“如何做出这道题”为目标,更多的还得慢慢学。- 本人大二,没学过算法,一刷代码随想录。- 所以肯定是有二、三刷甚至更多的。- 总结一下这60天。
2023-09-09 22:52:17
178
原创 day59 单调栈.p2
/ 例子:有三条高度为4 3 5的柱子,下标分别为0 1 2,在3处的积水块高为 4 - 3,宽为下标2 - 0 - 1;else if (height[i] == height[st.top()]) { // 遇到了俩根挨着的、同高的柱子。i++) { // 再走一遍就相当于循环了一次了。i++) { // 再走一遍就相当于循环了一次了。
2023-09-08 22:25:24
219
原创 day58 单调栈.p1
/ 当前找到的目标元素——num2下标为st.top(),去umap里找对应num1的下标位置。if (umap.count(nums2[st.top()]) > 0) // num2里面有num1的对应元素。// 记num1的值->下标,遍历num2时拿来做对应。- 496.下一个更大元素 I。
2023-09-07 13:17:21
231
原创 day57 动规.p17 子序列
/ 以单个字母为中心。// 以两个字母为中心。// 自己就是一个子串。- 647. 回文子串。- 516.最长回文子序列。
2023-09-06 22:02:47
358
原创 day51 动规.p12 买卖股票
/ 0持有股票 1保持卖出 2今天卖出 3冷冻中。- 309.最佳买卖股票时机含冷冻期。- 714.买卖股票的最佳时机含手续费。// 0持有 1不持有。
2023-08-31 11:10:53
226
原创 day50 动规.p11 买卖股票
/ 0啥也不干 1第一次持有 2第一次不持有 3第二次持有 4第二次不持有。- 123.买卖股票的最佳时机III。- 188.买卖股票的最佳时机IV。
2023-08-30 23:14:45
263
原创 day49 动规.p10 买卖股票
dp[i][0]` 第i天持有股票所得到最多钱的情况。`dp[i][1]` 不持有股票所得到最多钱的情况。// 0持有 1不持有。// 0持有 1不持有。- 122.买卖股票的最佳时机II。- 121. 买卖股票的最佳时机。
2023-08-29 10:40:21
238
原创 day46 动规.p8
/ 如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是true。- 求排列数,先背包再物品。- 139.单词拆分。
2023-08-26 16:47:02
55
原创 day44 动规.p6
j++) { // 背包。i++) { // 物品。- 先物品,后背包,得组合数(元素不同的排列算作同一结果)- 先背包,后物品,得排列数。- 518. 零钱兑换 II。- 377. 组合总和 Ⅳ。
2023-08-24 19:53:56
86
原创 day43 动规.p5
计算组合公式,`dp[j] += dp[j - nums[i]];- 1049. 最后一块石头的重量 II。- 494. 目标和。
2023-08-23 15:20:12
67
原创 day42 动规.p4
放物品i,`dp[i - 1][j - weight[i]] + value[i]`- `dp[i][j] = max(不放物品i的情况,放物品i的情况)`- 下标0到 i 的物品里面任取,放进容量 j 的背包,其价值最大值。- j = 0,背包容量0,`dp[i][0] = 0`- i = 0, 可以放物品0时,dp = 物品0的价值。- 不放物品i,`dp[i - 1][j]`//算dp数组,i表示从0到i任取物品,j表示当前背包重量。- `dp[i][j]` 含义。- 416. 分割等和子集。
2023-08-22 18:33:00
46
原创 day38 动规.p1
1. 确定dp数组以及下标的含义。- 746. 使用最小花费爬楼梯。- 509. 斐波那契数。3. dp数组如何初始化。5. 举例推导dp数组。
2023-08-18 14:28:44
32
原创 day24 回溯.p1
递归backtracking()void backtracking(条件) {for (集合元素) {if (终止条件) {- 用于解决什么问题?
2023-08-04 15:12:12
39
原创 day22 二叉树.p8
如果在p q之间,就说明当前节点是公共祖先。- 235. 二叉搜索树的最近公共祖先。- 701.二叉搜索树中的插入操作。- 450.删除二叉搜索树中的节点。- 删除节点有5种情况。
2023-08-02 18:08:15
24
1
原创 day21 二叉树.p7
530.二叉搜索树的最小绝对差。- 236. 二叉树的最近公共祖先。- 501.二叉搜索树中的众数。- 涉及前后俩个节点的处理。
2023-08-01 15:51:52
24
1
原创 day16 二叉树.p3
如果只是max改成min,上述情况会变成return 空子树的情况,所以加if去限定条件即可。- 类似上题,但是不要忽略了,一边为空,另一边有子树的情况。- 确定左右俩边分支长度一样,则该片全满。- 求最大深度即根节点的高度。- 222.完全二叉树的节点个数。- 104.二叉树的最大深度。- 111.二叉树的最小深度。
2023-07-27 16:34:57
266
1
原创 day15 二叉树.p2
记录当前层,int size = queue.size()就好了,size--到0之前,都是当前层数理论有的节点。- 借用queue记录当前子树的头,把它的左右节点入栈,该头就可以pop了。- 后序,因为我们要先知道子树是否相同,再比较当前根节点,从而以此类推。- 外层和外层比较,内层和内层比较。- 前、后序,不可以用中序。- 每个左右节点俩俩交换。- 101.对称二叉树 2。- 226.翻转二叉树。- 层序遍历 10。
2023-07-26 18:03:20
340
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人