《剑指offer》之“包含min函数的栈”题解
题目:leetcode-cn.com/problems/ba…解题思路:题目要求实现一个包含min()函数的栈,min()函数的作用是返回栈中的最小值,因此我们可以想到使用一个辅助的数据结构来进行实现。首先我们想到的是一个小根堆或者是一个排序的List,但是题目的要求是时间复杂度为O(1),这就排除了大多数的解决办法了。想到时间复杂度为O(1),想必大多数同学都会想到用HashMap,但是再看看....

AC 剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min....

AC 剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-....
牛客网《剑指offer》专栏刷题练习|锻炼递归思想|练习栈的使用
一、斐波那契数列1、题目要求2、个人题解2.1、解题思路首先根据题目我们得知当n等于1或者2的时候,该函数计算结果为1,那么就先处理这种情况接下来在n大于2的情况下讨论问题,此时由题可得函数返回结果依赖于n为1或者2的返回值,那么我们就想到利用递归来解这道题。不断递推,当有结果出现时开始逐步回溯。2.2、代码实现class Solution { public: int Fibonacci...

刷穿剑指offer-Day18-栈II 单调栈的解题思路
昨日回顾昨天我们开启了栈这个数据结构的章节,分别介绍了Python和Java中栈的初始化与使用。然后通过三道题目,对栈的解题和分析有了一个初步的了解。然而昨天的栈题目,主要是针对题目的条件,判断是否需要弹出栈内元素,属于通用的栈场景。然而,今天需要介绍的是栈中特殊的一类题目,单调栈。既然是单调的,那么要么单调增、要么单调减。当我们遇到一道题目时,如何判断是否该使用单调栈的方法去解题呢?这里要注意....
刷穿剑指offer-Day17-栈I 栈的使用与基础题型!
刷穿剑指offer-Day17-栈I 栈的使用与基础题型栈的介绍栈(stack) 本身是一种简单、常用的数据结构,它常常用来和队列进行比较。队列: 先入先出栈: 后入先出栈的所有操作都发生在栈顶,其实就三个操作,入栈(压栈)、出栈(弹栈)、获取栈顶元素。Python & Java 中的栈Java中存在Stack的数据结构,但Python是没有栈的,它们的实现与操....
剑指offer刷题记录 栈、递归、二叉搜素树(下)
剑指Offer(九):变态跳台阶public class Solution { public int JumpFloorII(int target) { if(target<=0){ return -1; }else if(target==1){ return 1; }else if(tar...

剑指 Offer:09. 用两个栈实现队列
1. 题目剑指 Offer 09. 用两个栈实现队列2. 描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”]....
剑指 Offer 09. 用两个栈实现队列
题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1:输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,nu....

剑指offer之两个队列实现栈的问题
1 问题两个队列实现栈的插入和获取头部元素的功能2 分析1)获取头部元素的功能分析:我们有2个队列,我们知道队列的特点的先进先出,而栈的特点是先进后出,比如我们有数据1,2,3,4,我们分别依次压入队列1,队列2目前是空,我们需要有栈的效果,加上队列2也是先进先出的特点,意味着我们队列2里面的数据依次是4,3,2,1入队列2,现在问题转成了我们怎么操作队列1里面的数据让它依次弹出4,3,2,1入....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
数据结构更多栈相关
算法编程
开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。
+关注