![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题日记
顺利毕业(研)
一个编程小白,期待您的指教
展开
-
leetcode刷题日记-括号生成
回溯的题目,不过这个两个if我就感觉有点难以理解了,不过仔细的思考了一下,确实考虑到了每个位置的情况,特别是针对右边括号。原创 2024-08-01 17:12:38 · 230 阅读 · 0 评论 -
leetcode刷题日记-字母异位词分组
利用collection中的Counter进行解题,以排序之后的字母为key,单词为value,不同步的值对应列表,原创 2024-07-15 20:18:52 · 233 阅读 · 0 评论 -
leetcode刷题日志-旋转图像
也就是一个找规律的题,可以写一个转换前后的坐标对比,很容易能找到规律。[i,j]->[j,length-i-1]上式就是找到的规律。在解题的时候遇到过一个问题,就是如果我单纯的将数组复制给一个中间变量,或者是将数组中的子数组加入到另一个数组,新数组会随着老数组的变化而变化。要想当作中间变量不随着原数组的改变而改变,必须进行深复制。原创 2024-06-19 15:48:09 · 204 阅读 · 0 评论 -
leetcode刷题日记之跳跃游戏(中等)
最小跳跃次数,记录每一跳的最大距离,每次达到这个距离,跳跃次数加1,进行最大距离的更新。直至最大的跳跃距离大于数组的长度。原创 2024-04-14 22:04:31 · 223 阅读 · 0 评论 -
leetcode刷题日记之接雨水问题
这个题目相当于一个桶的容量是多少,这取决于最短的模板的高度,,对于位置来讲,第i个位置所能承载的最大的容量为左右两侧最低的高度减去该位置的高度,如果两侧的最低位置小于height【i】,那么可接容量为0,其实归根到底还是求两侧的最大高度,避免不了进行三次循环,首先进行一次循环,求解每个位置左侧的最大高度,第二次循环求解每个位置右侧的最大高度,最后取每个位置的最大的高度的最小值减去当前位置的高度就能求出当前位置的容量。将总的容量相加即可。原创 2024-04-09 09:01:07 · 267 阅读 · 0 评论 -
leetcode刷题日记-缺失的第一个正数(困难)
题目的意思十分容易理解,但是确实思考出来这种解题的方法还是比较难的。首先能想到的点就是[1,N]这个范围,因为只有N个数字,最小的数字只能在这个区间和N+1两种可能。但是有时间复杂度的限制,我们该怎么找。我们可以另外申请一块存储空间N+2大小,将出现在[1,N]这个区间的数字进行计数,然后从头开始遍历新开辟的存储空间,从1开始到N+1这个下标结束。中途如果出现计数的个数为0,那么直接返回下标即为最小的数目。原创 2024-03-29 20:51:45 · 188 阅读 · 1 评论 -
leetcode刷题日记之组合的总和(中等)
这道题看起来更像是树的深度遍历的一种变体,只不过是现在的树允许有重复的值,其实只需要通过for循环就可以解决这种变体的题目。大家可能之前做过路径搜索的问题,类似路径搜索。原创 2024-03-26 10:25:13 · 194 阅读 · 0 评论 -
leetcode刷题日记-外观数组
在每次迭代中,通过两个指针 pos 和 start 来遍历当前项 init,pos 指向当前字符,start 指向当前连续字符序列的起始位置。每次遇到不同的字符时,将当前连续字符序列的长度(pos - start)和该字符本身(init[start])拼接到 curr 字符串中。在内层的两个 while 循环中,pos 从 start 开始向后移动,直到遇到不同的字符或者到达字符串末尾。更新 start 为当前 pos 的值,以便下一次计算下一个连续字符序列的长度。原创 2024-03-25 23:03:00 · 425 阅读 · 0 评论 -
leetcode刷题日记-滑铁卢了家人们(解数独)
解决数独问题原创 2024-03-25 10:44:04 · 297 阅读 · 0 评论 -
leetcode刷题日记-下一个排列(有点懵)
一开始看到这个题目的时候,很懵,理解不了。直接发给我的助手,给我解释了一遍题目的意思,竟然给我输出了答案。我看了解题死理,发现是这么回事。其实看解题思路更能理解这个题目想要表达的意思。首先,逆序找第一个不按照升序排列的数字,记为i,然后从逆序寻找第一个比i所在位置大的下标即为j,交换两个下标对应的元素。然后,从第i+1个位置直至列表的最后,进行元素的交换。原创 2024-03-17 19:45:37 · 253 阅读 · 0 评论 -
leetcode刷题日记之串联所有单词
一开始考虑的就是暴力破解,每次切片切words中字母的个数,然后根据每个词语的长度进行进一步的切片,将切出来的单词放入列表,然后每次对比一次,如果存在,就从原来的列表中,删除一个元素,最后复制的words数组为空,结束,找到起始位置i,将其加入结果列表中。很遗憾,这种方法超时。然后,优化的方法是使用的哈希表计数的方法,具体的代码如下。原创 2024-03-17 10:02:12 · 258 阅读 · 0 评论