剑指offer
面试题21： 包含min函数的栈
题目： 定义栈的数据结构，请在该类型中实现一个能够得到栈的最小元素的min函数。在战中，调用min、push、及pop的时间复杂度都是O(1)。
剑指offer
面试题22： 栈的压入、弹出序列
题目：输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否为该站的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列，序列4、5、3、2、1是该栈压栈序列对应的一个出栈序列，但4、3、5、1、2就不可能是该栈压栈序列的弹出序列。
剑指offer
面试题23： 从上往下打印二叉树
题目： 从上往下打印出二叉树的每个节点，同一层的结点按照从左到右的书序打印。
剑指offer
面试题24： 二叉搜索树的后续遍历序列
题目：
输入一个整数数组，判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true，否则返回false。假设输入的数组的任意两个数字都互不相同。
剑指offer
面试题25： 二叉树中和为某一直的路径
题目： 输入一棵二叉树和一个整数，打印出二叉树中结点值的和为输入整数的所有路径。从数的根节点开始往下一直到结点经过的节点形成一条路径。
剑指offer
面试题26： 复杂链表的复制
题目： 请事先函数ComplexListNode Clone(ComplexListNode
head)，复制一个复杂链表。在复杂脸表中，每个节点除了有一个next指针指向下一个节点外，还有一个sibling令指向链表中的任意节点或者null。
剑指offer
面试题27： 二叉搜索树与双向链表
题目： 输入一棵二叉搜索树，将该二叉搜索树转换成一个排序的双向链表。要求不能创建人和新的节点，只能调整树种节点指针的指向。
剑指offer
面试题27： 字符串的排列
题目： 输入一个字符串，打印出该字符串中字符的所有排列。
剑指offer
面试题29：数组中出现次数超过一半的数字
题目：
数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2.
剑指offer
面试题30： 最小的k个数
题目： 输入n个整数，找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字，则最小地哥数字是1、2、3、4.
剑指offer
面试题31： 连续子数组的最大和
题目： 输入一个整形数组，数组里有整数也有负数。数组中一个活连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
剑指offer
面试题32： 从1到n整数中1出现的次数
题目：
输入一个整数n，求从1到n这n个整数的十进制表示中1出现的次数。例如输入12，从1到12这些整数中包含1的数字有1,12,11和12,1一共出现了5次。
剑指offer
面试题33： 把数组排成最小的数
题目：
输入一个正整数数组，吧整数数组里所有数字拼接起来排成一个数，打印能拼接出所有数字钟最小的一个。例如输入数组{3,32,321}，则打印出这3哥数字能排列成的最小数字321323.