
算法小记
Achooyo
这个作者很懒,什么都没留下…
展开
-
lc209. 长度最小的子数组
在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。窗口的起始位置如何移动:如果当前窗口的值大于等于s了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。首先要思考 如果用一个for循环,那么应该表示 滑动窗口的起始位置,还是终止位置。如果只用一个for循环来表示 滑动窗口的起始位置,那么如何遍历剩下的终止位置?的长度最小的 子数组。原创 2024-08-07 00:33:49 · 331 阅读 · 0 评论 -
Lc11. 盛最多水的容器
针对长板:由于min取决于短板长度,所以向内移动长板的话,min只会减小或者不变,s = min * (j-i-1) 所以一定减小。针对短板:由于min取决于短板长度,所以向内移动短板,min有可能增大,s = min * (j-i-1) 有可能增大。所以只需要一直将两块板子中的短板向内移动,直到相遇,所记录最大值即为水池最大面积。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。返回容器可以储存的最大水量。定义两个指针分别指向两块板子。原创 2024-03-08 20:58:10 · 409 阅读 · 0 评论 -
LeetCode 560 和为K的子数组
由sum[right] - sum[left] == k(后 - 前)得知判断hashmap里是否存在sum[i] - k,累加其出现的次数;以及特判一下当前的sum[i]是否 == k。给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数。子数组是数组中元素的连续非空序列。利用hashmap存储前缀和与其出现的次数。最后将sum[i]存进hashmap中。原创 2024-03-07 00:06:36 · 426 阅读 · 0 评论 -
Lc142 环形链表Ⅱ
1.判断链表是否成环-- 定义快慢指针,一个每次走两步,一个每次走一步,相对就是多走一步,所以一定会相遇。= null 时对两指针进行移动,若一直到slow与fast相遇(此时一定在环中)从而证明有环,如果 fast == null || fast.next == null 直接跳出循环,则没环。此时fast == slow 在A点相遇,根据fast速度为slow两倍,即路程也为两倍,则有。原创 2024-03-02 14:00:05 · 456 阅读 · 0 评论