设计
leetcode题目分类--根据题目需求设计数据结构
m0_38142029
这个作者很懒,什么都没留下…
展开
-
[设计] 284. 顶端迭代器(改造Iterator:辅助队列 → 预存next的返回值)
[设计] 284. 顶端迭代器(改造Iterator:辅助队列 → 预存next的返回值)284. 顶端迭代器题目分析思路1:辅助队列(空间 O(N))思路2:预存next()的返回值(空间 O(1))284. 顶端迭代器题目链接:https://leetcode-cn.com/problems/peeking-iterator/solution/分类:设计:基于Iterator的基本函数,设计一个peek函数(辅助队列(思路1) → 预存next返回值(思路2))题目分析本题需要在I原创 2020-10-11 18:03:07 · 94 阅读 · 0 评论 -
[滑动窗口+双向队列的应用] 239. 滑动窗口最大值(暴力解法 → 单调队列法)
[滑动窗口+双向队列的应用] 239. 滑动窗口最大值(暴力解法 → 单调队列法)239. 滑动窗口最大值思路1:暴力解思路2:单调队列法(双向队列模拟单调队列)239. 滑动窗口最大值题目链接:https://leetcode-cn.com/problems/sliding-window-maximum/分类:滑动窗口(两种设置左右边界初始值的方法、求滑动窗口内最大值:暴力解法 → 单调队列法)单调队列(基于双向队列,队尾到队首非递减存放窗口内可能成为max的元素,队首 == 当前窗口max原创 2020-10-06 00:06:10 · 260 阅读 · 0 评论 -
[设计 栈] 232. 用栈实现队列(双栈模拟队列、缓冲区法)
[设计 栈] 232. 用栈实现队列(双栈模拟队列、缓冲区法)232. 用栈实现队列思路1:改造pop,peek思路2:改造push思路3:缓冲区思想,均摊O(1) (推荐)232. 用栈实现队列题目链接:https://leetcode-cn.com/problems/implement-queue-using-stacks/分类:设计:用两个栈模拟队列(常规方法、缓冲区法)栈:利用栈FILO的特点模拟队列的四个基本函数(push,pop,peek,empty)思路1:改造pop,p原创 2020-10-02 23:38:27 · 217 阅读 · 0 评论 -
[设计] 225. 用队列实现栈(两个队列法、一个队列法)
[设计] 225. 用队列实现栈(两个队列法、一个队列法)225. 用队列实现栈思路1:两个队列思路2:一个队列225. 用队列实现栈题目链接:https://leetcode-cn.com/problems/implement-stack-using-queues/分类:设计:用队列模拟栈的四个操作(push,pop,top,empty)队列:只能使用队列的基本操作模拟栈、方法有:两个队列法、一个队列法。思路1:两个队列队列的特点是先进先出,栈的特点是先进后出,要用队列来模拟栈,可原创 2020-09-30 17:52:15 · 84 阅读 · 0 评论 -
[设计数据结构] 208. 实现前缀树Trie(节点:Trie类/边:类内数组、终结点区分单词和前缀)211. 添加与搜索单词(前缀树的应用)212. 单词搜索 II(回溯法 + 前缀树)
[设计数据结构] 208. 实现前缀树Trie(节点:Trie类/边:类内数组、终结点区分树内的单词和前缀)208. 实现 Trie (前缀树)题目分析什么是前缀树?前缀树基本函数的实现要求算法设计1、设计节点和边的数据结构2、设计三个功能函数insert(word)search(word):(依赖终结点)startsWith(prefix)实现遇到的问题1、如何创建前缀树的根节点root?(在类里获取这个类的实例化对象)2、编写insert时忽略了已经存在的结点实现代码208. 实现 Trie (前缀树原创 2020-09-22 14:47:37 · 214 阅读 · 0 评论