随笔分类 - LeetCode
摘要:双指针 双指针可分为三类: 左右指针 快慢指针 滑动窗口 其中,滑动窗口 已单独写了一篇随笔,可跳转查看。 在快慢指针中,又有一类典型算法,叫 Floyd's cycle-finding algorithm,其又名 Floyd's Hare and Tortoise Algorithm。 在这里,我
阅读全文
摘要:Floyd's cycle-finding algorithm 引用维基百科的定义:Floyd's cycle-finding algorithm is a pointer algorithm that uses only two pointers, which move through the s
阅读全文
摘要:Sliding Window 滑动窗口就是双指针的一种技巧,运用的就是双指针,但是仅能维持一个指针移动,另一个指针呆着不动。 当一个指针维持不动,另一个指针移动时,两个指针之间的部分就是一个窗口,这个窗口是不断的扩大和缩小的,直到末尾或找到结果。 1. 思路 简单思路就是: right 指针不断向右
阅读全文
摘要:前缀和技巧 前缀和技巧 主要用于解决数组的子数组问题。 使用前缀和的经典题目: 560.Subarray Sum Equals K 930.Binary Subarrays With Sum 1. 什么是前缀和 这里以 LeetCode 的一道题目,560. Subarray Sum Equals
阅读全文
摘要:Trie Trie 是一种特殊的数据结构,与二叉树类似,只是 Trie 不限子孩子数量。 Trie 又名字典树,单词查找树,前缀树。我们可以使用 Trie 来构造工作中使用到的 红点系统 。 下面以 LeetCode 的第208题 Implement Trie (Prefix Tree) 来讨论实现
阅读全文
摘要:单调栈,如名字一样,栈内的元素是单调递增或者单调递减的。 接下来我们用 LeetCode 的题目 155. Min Stack 来说明这种特殊的数据结构,题目说明如下: Design a stack that supports push, pop, top, and retrieving the m
阅读全文

浙公网安备 33010602011771号