设计一个能够获取当前栈最小值的栈 问题描述 ? 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作,要求pop、push、getMin 操作的时间复杂度都是 O(1)。 解题思路 ? 使用两个栈来实现这一功能,一个普通栈stackData,一个能获取最小值的栈stackMin ...
分类:
编程语言 时间:
2020-06-20 15:53:31
阅读次数:
53
地址:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/ <?php /** 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾 ...
分类:
其他好文 时间:
2020-05-28 19:43:47
阅读次数:
62
题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 我的想法: 栈是先进后出,队列是先进先出。两个完全相反的操作,只能将两个栈想象成“倒豆子”,倒来倒去的完成操作。如果想高阶一些的办法,既然有俩个栈,让一个管push另一个负责pop,岂不是有一种自己当老板,因 ...
分类:
其他好文 时间:
2020-05-20 00:23:01
阅读次数:
90
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 首先要明确队列的特性是先进先出,栈的特性是先进后出; 在进队列的方法里我们只要有容器能装元素就行了,所以直接往栈1里压; 在出队列方法里,要保证出队列的是最先进入的元素: 最直观的想法就是把栈1的元素挨个出 ...
分类:
其他好文 时间:
2020-05-19 22:45:58
阅读次数:
62
面试题005 用两个栈实现队列 题目表述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路: 实现入队和出队操作,stackA用来进栈,stackB出栈,stackB为空则stackA出栈给stackB 代码: ...
分类:
编程语言 时间:
2020-05-09 23:20:10
阅读次数:
65
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 思路: 一个栈存储元素,一个栈辅助 维护两个栈,第一个栈存储元素,第二个栈用 ...
分类:
其他好文 时间:
2020-05-02 09:22:43
阅读次数:
67
分析 使用两个栈,一个主(s1),一个辅(s2) 我们并不需要真正实现类似队列的结构,只需要实现队列的功能即可: push:直接push到s1即可,这时和队列的性质相反(FIFO vs. LIFO) pop:目标是拿到队头,即栈底,只需要把除栈底外的元素移动到辅助栈s2,然后弹出栈底,最后把s2元素 ...
分类:
其他好文 时间:
2020-04-27 19:11:49
阅读次数:
59
第四题:两个栈实现队列 用两个栈实现队列,支持队列的基本操作。输入描述:第一行输入一个整数N,表示对队列进行的操作总数。下面N行每行输入一个字符串S,表示操作的种类。如果s为"add",则后面还有一个整数x表示向队列尾部加入整数X。如果s为"poll",则表示弹出队列头部操作。如果s为"peek", ...
分类:
其他好文 时间:
2020-04-27 09:24:13
阅读次数:
84
用两个栈来模拟光标的移动,sum来维护A栈的前缀和,f用来维护最大值。 1 #include <iostream> 2 #include <algorithm> 3 #include <stack> 4 using namespace std; 5 stack<int> A, B; 6 conste ...
分类:
其他好文 时间:
2020-04-26 15:31:11
阅读次数:
61
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析 栈先进后出: 队列先进先出: > A_in > in < A_out > out < B_in > B_out 解题: # -*- coding:utf-8 -*- class Solution: ...
分类:
其他好文 时间:
2020-04-25 10:35:51
阅读次数:
59