一、题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 二、思路 用一个栈dataStack保存数据,用另外一个栈minStack保存依次入栈最小的数。每次元素存入minStack的时候,如…
分类:剑指offer
剑指offer解题报告(Java版)——和为s的两个数,一串连续数 41
引言 第一问题很简单,leetcode上也有相应的题,2Sum问题,leetcode上还有2Sum的进阶版3Sum,只是在这个问题上增加了一层循环而已,另外还有3S…
STL规范
标准库定义了顺序容器和关联容器,顺序容器内的元素按其位置存储和访问,关联容器内的元素按其键(key)排序。容器只定义了少量的操作,其他大量的操作是通过算法库实现,比如说排序和查找。算法库中的算法没有为每种容器类型设计…
广度优先遍历
从上向下打印二叉树的每个节点, 同一层的节点按照从左到右的顺序打印。 判断一棵树是否是完全二叉树。 将一棵完全二叉树层次遍历转化为一个链表。(不用队列) 1、思路: 可以使用双端队列deque容器,头负责打印,尾负责…
剑指offer七之斐波那契数列
一、题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39。 二、思路 序号:  …
剑指offer十七之树的子结构
一、题目 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 二、思路 1、首先设置标志位result = false,因为一旦匹配成功result就设为true,剩下的代…
两个堆栈实现列队
如何用两个堆栈模拟实现一个队列? 如何用两个堆栈模拟实现一个队列? 如果这两个堆栈的容量分别是m和n(m>n),你的方法能保证的队列容量是多少? class Solution { //主要思…
两个栈实现队列 7
主要实现从尾部添加字符和从头部删除字符 从尾部添加直接push进一个stack1即可 从头部删除,需要先将stack1中的字符压入stack2,然后从stack2弹…
剑指offer一之二维数组中的查找
一、题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 二、解答方法: 方法1:把每一行…
剑指offer二十四之二叉树中和为某一值的路径
一、题目 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 二、思路 详见代码 三、…
二进制中1的个数 10
三种方法 第一种不断除2 除2可以用右移方式,但这种方式对于负数的话容易造成左边全为1,进入死循环 可以判断如果输入负数的话,取他的相反…
(atoi)String to Integer 49
corner case的处理 整数一般考虑两点:一点是符号,另外一点是越界 首先去掉多余的空格字符 然后读符号,可能是正号,也可能是负号…