
算法与数据结构
qq_24800489
面歧路者有行迷之虑,仰高山者有飞天之志
展开
-
力扣算法题解析:队列最大值
地址:https://leetcode-cn.com/problems/dui-lie-de-zui-da-zhi-lcof/ 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 -1 示例 1: 输入: ["MaxQueue","push_back","push_back","max_value","pop_fr原创 2021-09-14 15:59:52 · 312 阅读 · 0 评论 -
数据结构与算法之双端队列
指的是允许同时从队尾与对首两端进行存取操作的队列,操作更加灵活。 与js中的数组操作十分相似,只是不允许在数组两端以外的位置进行存取操作。 我们要实现的功能: addFront/addBack:添加功能 removeFront/removeBack:删除功能 frontTop/backTop:获取对首和队尾的值 基于对象实现 队首添加,只需要更新 head 索引值,递减 队首移除,只需要更新 head 索引值,递增 队尾添加,正常更新 count 即可,递增 队尾移除,正常更新 count原创 2021-09-14 14:13:13 · 217 阅读 · 0 评论 -
算法与数据结构之队列
是一种遵循先进先出原则的有序集合。 添加新元素的一端称为队尾,另一端称为对首。 图示: 入队 出队 我们需要实现以下功能: enqueue() 入队方法 dequeue() 出队方法 top 获取对首值 size 获取队列的元素个数 clear 清空队列 基于数组实现 入队问题不大 出队数组而言,除了通过unshift删除首位元素外,还需要通过delate彻底删除首项,因为会占位 class Queue { constructor () { // 首先...原创 2021-09-14 14:01:15 · 150 阅读 · 0 评论 -
力扣算法题解析:每日温度
题目链接:https://leetcode-cn.com/problems/iIQa4I/ 请根据每日 气温 列表 temperatures,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0 来代替。 示例 1: 输入: temperatures = [73,74,75,71,69,72,76,73] 输出:[1,1,4,2,1,1,0,0] 解题思路 定义温度函数 /** * @param ...原创 2021-09-07 14:06:00 · 256 阅读 · 0 评论 -
力扣算法题解析:包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. ...原创 2021-09-07 10:54:24 · 345 阅读 · 0 评论 -
算法与数据结构之栈
栈的概念 栈是数据结构中基础数据结构: 一种遵循后进先出原则的有序集合,指的是只能从栈的顶端进行数据到的操作 添加新元素的一端称为栈顶,另一端称为栈底。 操作栈元素时,只能从栈顶操作(添加、移除和取值) 反正就是一种先进后出的数据结构。 图示: 入栈 出栈 栈的实现 我们需要实现以下功能: push() 入栈 pop() 出栈 top() 获取栈顶值 size() 获取栈的元素个数 clear() 清空栈 首先用创建一个栈类 class Stack { con..原创 2021-09-07 10:09:27 · 138 阅读 · 1 评论