力扣Hot 100
文章平均质量分 83
W懒大王W
这个作者很懒,什么都没留下…
展开
-
48. 旋转图像/240. 搜索二维矩阵 II
(可以通过6X6的矩阵验证,黄色是每圈的起点,红色是每圈的终点)原创 2024-05-09 17:46:57 · 928 阅读 · 0 评论 -
73. 矩阵置零/54. 螺旋矩阵
给定一个m x n的矩阵,如果一个元素为,则将其所在行和列的所有元素都设为。请使用算法记录当前元素所在行列,然后遍历到处在该行或者该列的元素等于0。原创 2024-05-07 10:12:32 · 793 阅读 · 0 评论 -
238. 除自身以外数组的乘积/41. 缺失的第一个正数
给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O( n)时间复杂度内完成此题。首先题目已经说了不给用除法,并且在O( n)时间复杂度内完成此题我们按元素来分析,可以看到1和4位置特殊在最左边和最右边,他们的答案就是2和3位置在中间,他们答案可以分成左右两部分,23所以答案就是。原创 2024-05-03 11:29:27 · 508 阅读 · 0 评论 -
53. 最大子数组和/56. 合并区间/189. 轮转数组
当前元素加入进来时,如果和。原创 2024-04-27 14:55:45 · 447 阅读 · 0 评论 -
239. 滑动窗口最大值/76. 最小覆盖子串
给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值用单调队列处理,滑动窗口的加入元素和移除元素相当于队列的pop和push,找出最大元素相当于单调队列的中最大值,也就是队列的头元素(que.front())。下一步设计一个队列,包含出队、入队、寻找最大值的操作。原创 2024-04-26 12:00:07 · 821 阅读 · 0 评论 -
3. 无重复字符的最长子串/438. 找到字符串中所有字母异位词/560. 和为 K 的子数组
给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是 "abc",所以其长度为 3。。所以我们就可以采用滑动窗口去处理,对于判断重复用的数据结构为哈希集合(即C++中的在左指针向右移动的时候,我们从哈希集合中移除一个字符,在右指针向右移动的时候,我们往哈希集合中添加一个字符。由上面想法可以写出下面代码(个人走的弯路,不想看可以跳过)可以解出来,但是耗时太长没有利用好滑动窗口减少比对次数。原创 2024-04-19 11:51:32 · 688 阅读 · 0 评论 -
15.三数之和/42.接雨水
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。参考之前的博客,注意一下双指针收缩时机。原创 2024-04-17 16:14:35 · 660 阅读 · 0 评论 -
128. 最长连续序列/283. 移动零/11. 盛最多水的容器
给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。4最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。注意这里要求是复杂度为n,所以双层forx循环暴力解法不可取。重新思考,当遍历到当前元素时,我们需要去寻找它的下一个数字,例如遍历到100去找101,这里肯定是没有错的,所以我们,例如对于1,2,3,4这四个元素而言,都是在一个序列中,显然从1开始寻找是最长的,其他三个都比1要短。原创 2024-04-09 15:00:42 · 411 阅读 · 0 评论 -
1. 两数之和/49. 字母异位词分组
题目:给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。暴力解法两层循环解决,这里利用map可以使得时间复杂度变小,用目标值减去当前的数组元素,得到需要的值,再去map中寻找,没有就将当前值加入(值作key,下标作value),找到就输出下标和map中对应的值。原创 2024-04-08 18:42:12 · 385 阅读 · 0 评论