34. 在排序数组中查找元素的第一个和最后一个位置。
2023-03-15 22:16:55
687
理解题意:最大矩形,也就是相邻min的宽度乘以高度。今天就结束啦,但是还需要继续复习,复习进度没有跟上~整体还是好难想到,看了讲解照着写了一下。
2023-03-15 20:48:10
218
循环直接查两遍即可循环。
2023-03-14 22:01:33
207
本题要找右边第一个比自己大的元素,符合单调栈解题思路。比上一题复杂一些,但还是可以在它的基础上更改。
2023-03-13 23:12:16
202
这个dp的含义没有想出来。dp表示i-j之间的是否为回文子串。
2023-03-13 22:34:24
66
第一种思路是前面题目最长子序列的变体,只需要让两个长度之和减去两个最长子序列长度即可。第二个编辑距离难一点。
2023-03-13 17:37:30
95
用双指针的思路还是简单的。动态规划方法也和之前最长子序列很类似。
2023-03-13 15:11:06
49
与上一题最长重复子数组思路相似,但这题不用连续,感觉是更容易想到一些。
2023-03-12 00:42:06
82
这个也是没想出来,需要双循环,注意res初始值为1(1
2023-03-07 10:44:51
316
本题一共有四个状态:1、今天买入2、今天不买不卖(保持卖出状态)3、今天卖出4、今天冷冻期(前一天卖出)
2023-03-06 17:56:56
149
买卖股票
2023-03-05 23:14:15
69
贪心的思路更好想,但是动规知道之后就很清晰。
2023-03-03 17:21:49
58
还是挺简单的一道题目,想清楚是怎么推就可以。
2023-03-02 11:53:18
58
https://leetcode.cn/problems/word-break/这个也没有自己想到背包的解决思路。dp表示当前长度的字符串是否包含在字典里,如果当前包含在字典里,当前之前的也包含,就说明是true。多重背包有N种物品和一个容量为V 的背包。第i种物品最多有Mi件可用,每件耗费的空间是Ci ,价值是Wi 。求解将哪些物品装入背包可使这些物品的耗费的空间 总和不超过背包容量,且价值总和最大。和01和完全的区别就在于 最多有Mi件可用,把Mi摊开就变成了01背包问题。
2023-03-01 11:14:52
72
感觉直接是按照套路写了,多重背包问题。
2023-02-28 10:04:08
100
完全背包的题目,注意组合问题。
2023-02-27 20:42:48
95
这个自己还是没想出来01背包对应。本题其实就是尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题了。stones = [2,7,4,1,8,1]也就是sum=23,2+7+1+1=11,4+8=12,差值为1。
2023-02-27 19:35:59
332
感觉还是挺难想到背包问题的,但如果可以想到再按照背包理解就很赞。
2023-02-24 19:39:13
73
这个方法还是蛮好想的,自己计算一些就可以知道规律。看了讲解后简化了一下,数组初试就是有值的。
2023-02-23 23:02:28
206
这道题是枚举看规律得出来的。
2023-02-23 00:02:20
80
这个感觉最后一步不花费更好理解。
2023-02-22 22:59:16
149
一个一个试会超出时间限制改进,n不再一个一个的减而是知道哪一位不递增直接再下一级开始找。
2023-02-22 20:53:11
60
将上一题稍做修改,并且比较用Integer.compare防止溢出。
2023-02-22 16:17:09
64
第一步是按照身高从大到小排列,这一步没想到,一直按从小到大卡住了。这个也没想出来,直接更改值。
2023-02-17 14:10:20
63
按照绝对值的大小排序就ok了。这个写法不熟悉。题解是最后再算和。
2023-02-16 23:16:02
62
可以多次买入有点不知道怎么办了假如第0天买入,第3天卖出,那么利润为:prices[3] - prices[0]。相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。这个分解的思路也太妙啦‘
2023-02-16 15:55:17
250
这个还是挺简单的。
2023-02-15 18:13:28
88
去重有点难用数组来存储已经用过的元素来去重或map。
2023-02-12 17:45:51
69
参考上一题,本题需要的判断条件更多了一些,回溯时用“.”来判断。改进。
2023-02-10 20:05:26
72
每次循环都完整,>sum到下一次。如果先排序,可以进行剪枝操作。
2023-02-09 17:21:04
119
在组合那道题的基础上进行筛选就比较简单了if(sum>n)可以写到外面判断就不用再在其中回溯了。
2023-02-07 23:11:44
60
本题的重点是startIndex这个部分,剪枝操作,每层循环的结束是 n - (k - path.size()) + 1,也就是剩下的元素如果不够k了的就不用了往后循环了。和上面的模板几乎一致,终止条件是每找到一个序列。循环处理结点,先加入一个,再递归,这层结束可以remove一个,也就是回溯。这个自己想感觉还是有难度。
2023-02-07 21:43:15
120
首先分情况:root是null直接返回;root值小于low,root直接变为right;root值大于high,root直接变为left;当前遍历到的结点的左孩子小于low,结点的左孩子变为结点左孩子的右孩子;左孩子大于high继续向左遍历;当前遍历到的结点的右孩子大于high,结点的右孩子变为结点右孩子的左孩子;右孩子小于low继续向右遍历以上是错误想法o(╥﹏╥)o,完美0分踩坑。
2023-02-07 01:07:17
274
根据二叉搜索树的特性修改查找公共祖先的代码。看了讲解,迭代法也蛮简单的。
2023-02-04 23:56:47
220
中序遍历找最小值。
2023-02-03 00:45:47
326
可以参照前一天通过前序中序建立二叉树,这次是找最大值。加一个判断速度更快。
2023-02-02 23:11:49
175
第一反应是层次遍历,写起来挺简单的。递归,没想到怎么写递归。
2023-02-02 16:45:10
239
这个思路和之前对称二叉树的思路相同。这个直接在求高度时就已经区分判断。
2023-02-01 15:49:55
48
递归写法。
2023-02-01 00:23:54
54
这个是看了讲解。
2023-01-31 23:38:33
131