剑指offer

  • 第一天
    • 剑指 Offer 09. 用两个栈实现队列
    • 剑指 Offer 30. 包含min函数的栈
  • 第二天
    • 剑指 Offer 06. 从尾到头打印链表
    • 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
    • 剑指 Offer 35. 复杂链表的复制
  • 有待更新。。。。

第一天

剑指 Offer 09. 用两个栈实现队列

->点这里进入leetcode

这道题的意思就是让我们使用两个栈实现一个队列,
简单复习一下:
栈:先进后出(栈顶进出元素)
队列:先进先出(队列头出元素,队列尾进元素)
我们会发现栈可以做到队列尾进元素,但是如何让栈底出元素是一个问题
我们会想到将一个栈的元素依次出栈放到另外一个栈中的时候,他的元素是不是会倒过来,例如:

这样我们是不是就可以在A栈进元素,B栈出元素构成了一个先进先出的队列。
代码:

class CQueue {public:stack<int> a;stack<int> b;CQueue() {}//添加元素void appendTail(int value) {a.push(value);          //元素进队列直接将元素放入a栈即可}//删除元素int deleteHead() {int e;if(a.empty())         //这个很重要,如果a栈空会出错return -1;while(!a.empty())     //将a栈元素->b栈{e = a.top();a.pop();b.push(e);}int res = b.top();   //提取并删除b栈栈顶元素b.pop();while(!b.empty())    //将b栈元素->a栈{e = b.top();b.pop();a.push(e);}return res;}};/*** Your CQueue object will be instantiated and called as such:* CQueue* obj = new CQueue();* obj->appendTail(value);* int param_2 = obj->deleteHead();*/

剑指 Offer 30. 包含min函数的栈

->点击这里进入leetcode

本题难点:
我们第一时间想到的肯定是将整个栈遍历一遍,找最小的元素,但是它会调用多次,每一次的时间复杂度都是O(n),这样肯定会超时。
解题思路:
建立两个栈:
数据栈A:存放栈的数据,入栈、出栈、获取栈顶元素都是正常的逻辑
辅助栈B:实现栈A中的最小元素始终对应着栈B的栈顶元素。
这样和普通的栈有什么不一样呢?
其中
pop() 时两栈栈顶元素同时出栈
push():时A栈正常,B栈则需要对比B栈栈顶元素和进栈元素,谁小,让谁进栈,这样就达成了栈A中的最小元素始终对应着栈B的栈顶元素(注意:当B栈为空的时候元素直接进栈即可)
**min()

[leetcode]剑指offer(C++版题解)相关推荐

  1. 剑指offer之46-50题解

    剑指offer之46-50题解 目录 孩子们的游戏 求1+2+3+-+n 不用加减乘除做加法 把字符串转换成整数 数组中重复的数字 46. 孩子们的游戏 (一)题目描述 每年六一儿童节,牛客都会准备一 ...

  2. 剑指offer之3-10题解

    剑指offer之3-10题解 前言: 最近开始刷牛客的剑指offer,把刷过的题,代码总结一下.有参考网上的代码,一起加油. 目录 从尾到头打印链表 重建二叉树 用两个栈实现队列 旋转数组的最小数字 ...

  3. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...

  4. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  5. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  6. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

  7. 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...

  8. leetcode 打印_剑指 Offer 32 - III 从上到下打印二叉树 III - leetcode 剑指offer

    题目难度: 中等 原题链接 今天继续更新剑指 offer 系列, 这道题相比昨天那道题多了个每层打印方向不同的需求, 聪明的你想到应该如何实现了吗? 老样子晚上 6 点 45 分准时更新公众号 每日精 ...

  9. 【LeetCode 剑指offer刷题】回溯法与暴力枚举法题6:Number of Islands

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Number of Islands Given a 2d grid map of '1's (land) and ' ...

  10. 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...

最新文章

  1. 计算c53的c语言的程序,C程序设计的常用算法.doc
  2. linux 释放cache 内存
  3. JS系统库:预定义对象(内建对象)
  4. Polly 重试策略
  5. 实战渗透-Shiro反序列化漏洞实例
  6. 成为解决计算机问题的利器,高中数学教学借助计算机的“翅膀”腾飞
  7. leetcode167. 两数之和 II - 输入有序数组(二分查找)
  8. NameError: name 'long' is not defined
  9. 拉普拉斯算子属于卷积方法吗_论文笔记 - 图卷积神经网络综述
  10. idea中代码字体大小调整
  11. 100亿+数据量,每天50W+查询,携程酒店数据智能平台实践
  12. 整体刚度矩阵matlab,单元刚度矩阵matlab
  13. 西门子1200PLC(入门)2
  14. 21届秋招美团一面面经[业务运营管理]
  15. Unity Line接入
  16. 爬虫项目1[爬取小猪短租数据]
  17. sphinx(附demo)
  18. win10去快捷方式箭头
  19. 求岛屿的最大面积java
  20. 认识微服务(七)之 Zuul 网关

热门文章

  1. python绘制语谱图(不掉包实现)
  2. java.io.IOException: Cannot create directory /home/app/hadoop-2.4.1/data/dfs/name/current
  3. 网站服务器在什么地方怎么查,如何查询一个网站所在服务器信息
  4. 如何理解新技术带来的新资产类别?
  5. Cabbage教学(3)——数学计算和文件操作
  6. unity实现简单的地图编辑器,实现跑酷地图编辑器 2d地图编辑器,导出地图json数据,导入地图json数据
  7. windows10专业版安装应用商店方法
  8. 你用过会议管理系统吗?你知道它能解决什么问题吗
  9. 鸿蒙系统翻车了,鸿蒙系统翻车了?任正非承认忽视了关键问题,称华为犯下大错误...
  10. 智工教育:公务员必考的知识点内容