数组
熟悉各类数组算法,如二分查找、记录元素并查找、双指针、滑动窗口
大大朋友
这个作者很懒,什么都没留下…
展开
-
双指针(leetcode 344、leetcode 345、 leetcode 125、 leetcode 11、 leetcode 141、 leetcode 879)
双指针的基本思想: 使用两个指针, 以不同的方向或不同的速度移动, 尤其在数组类题目中常见, 它也是优化的算法的一种方案。 可为了: 对撞双指针、快慢双指针。 对撞双指针:一个指针指向头, 一个指针指向尾, 两个指针都向中间移动,相遇就停止。 快慢双指针: 一个指针走的快,在前面找符合条件的元素, 一个指针走的慢, 用于将符合条件的元素换到前面来, 通常 [0 ~ 慢指针]的所有元素都是满足条件的元素值。 双指针对撞双指针LeetCode - 344. Reverse String(反转字符串)Le原创 2020-07-19 15:10:37 · 210 阅读 · 0 评论 -
滑动窗口(leetcode 76、567、438、3、1438、239)
字符串类的滑动窗口: 一般的题目: 有一个子串与一个主串, 找到这个串的起始地址、这个串是否存在、子串在主串是否存在并找出最小的串。 滑动窗口的思路:维护一个窗口,不断滑动,然后更新答案么,那么如何向窗口中添加新元素,如何缩小窗口,在窗口滑动的哪个阶段更新结果呢? 细节问题很烦人; 首先初始化左右窗口的值都是零(窗口就是双指针的另外一种表现形式),根据需要进行窗口的更新; leetcode 76: 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。 输入原创 2020-07-17 13:50:26 · 192 阅读 · 0 评论