自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 LeetCode热题100——无重复字符的最长字串

移动右边界,判断当前是否含有该字符,并移动左边界到不包含该字符的位置,移动的同时删除中间已经不需要包括的字符。我还用Map写了,和模板会有出入,时间复杂度还是O(N)

2024-09-09 10:33:56 268

原创 LeetCode热题100——接雨水

上一个方法我们使用两个数组维护最大值,我们可以简化为使用两个指针维护左右最大值,并且始终是两者中较小值往前走,因为接水量由较短者决定。我们可以用两个数组记录每个索引的左右最大值,使用一维动态规划,分别从左、右开始遍历,记录最大值。每个位置能接多少水,取决于,左右边界中最小值和当前高度的差值,所以我们需要找到i的左右最大值。

2024-09-08 10:13:59 291 1

原创 LeetCode热题100——三数之和

我们再固定b,考虑c移动的条件,我们的目标是找到 b + c = (-a),所以当 b + c > (-a)时,把c对应的指针向右移动,当 b + c <= (-a) 或者 b对应的指针与c对应的指针重合时结束。我们固定a,考虑b,c。当b增大时,c需要变小,这样三数之和才有可能为0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。所以我们把数组排序后,b,c 这两层可以看成相向双指针,最先想到的就是三重循环,时间复杂度为O(N^3)。注意,输出的顺序和三元组的顺序并不重要。

2024-09-07 11:08:47 346

原创 LeetCode热题100——盛最多水的容器

容量由短板决定,如果我们移动长板,无论后面是否有比长板更长的长度,容量以及被短板决定了,所以移动长板是无用的。容量 = Min(左边界,右边界) * (左右边界的距离)所以我们只需要移动短板即可,最终取容量最大的结果。如果我们移动短板,容量可能变少,也可能变多。从上面的公式我们可以想到使用。然后就是指针怎么移动的问题。本题要求的是容器的最多容量。

2024-09-06 10:16:01 308

原创 LeetCode热题100——移动零

一个快指针,向右走遇到非0的和慢指针交换,从而实现,将0全都移到尾部(将0全都移到尾部,实际上也是将非0的数全都移动到头部,且需要保持相对位置不变)如果整个数组都没有0,则快慢指针速度保持一直,即自己和自己交换,所以数组不变。时间复杂度为O(n)

2024-09-05 12:27:05 348

原创 LeetCode热题100——最长连续序列

找最长序列,就是在遍历数组里每一个x时,判断是否有x+1,x+2,x+3……,这里不需要考虑前面是否有连续的数,因为在遍历的时候,在它前面的数,在内层循环遍历的时候也一定会遍历到它,所以直接把x当成开头去遍历即可,时间复杂度为O(N^2)。但如果它有前驱数,那它一定不是最长的,我们就可以跳过该数,如何快速查找是否有x-1,我们可以用哈希表,查询的复杂度为O(1)。输入:nums = [0,3,7,2,5,8,4,6,0,1]输入:nums = [100,4,200,1,3,2]

2024-09-04 11:31:28 253

原创 LeetCode热题100——字母异位词分组

从样例我们可以直观看到,所谓异位词分组,就是单词的字母相同,即排序后的单词相同。我们可以使用哈希表存储异位词,排序后的单词作为哈希表的键,一组异位词即位哈希表的值。排序相当于统计每个字母的出现次数是否一样,所以我们也可以直接统计每个字母的出现次数,将字符和出现次数作为哈希表的键,一组异位词作为哈希表的值。在拼接sb时,我一开始用的两层循环,来达到和方法一一样的键,但其实没必要,直接拼上数字有一样的效果,且降低了时间复杂度。有n个字符串,所以最后时间复杂度是O(n(k+∣Σ∣))

2024-09-03 18:05:57 358

原创 LeetCode热题100——两数之和

我们在寻找target - x耗费了O(N)的时间,我们怎么快速找到数组中是否有target - x,有则取它的下标。每次遇到一个x就到哈希表里找target - x, 有则返回,无则把 x插入哈希表里。所以我们使用哈希表,哈希表的查询的时间复杂度是O(1)该题需要找的是x,target - x。时间复杂度O(N^2)

2024-09-02 09:17:13 299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除