剑指offer题目思想汇总
2017-03-15 18:22
281 查看
相关题目请参考牛客网剑指offer题目
二维数组的查找
方法: 从左上方开始查找。使右边的数字都比当前数小,下面的数字都比当前数大。替换空格
方法: 先找到所有空格 数,计算替换后的长度,从后向前拷贝。所有的数据都只用移动一次,而不是遇到空格空格后数据全体向后移动。从尾到头打印单链表
方法: 使用一个栈,头结点压栈,栈顶元素下一个节点不为空则压入,访问时访问栈顶元素。使用栈FILO思想。重建二叉树
方法: 通过中序或后序遍历找到头结点,在中序遍历中找到头结点位置(因此一定要有中序遍历才能进行重建),其前面数据为左子树,后面为右子树,将子树递归调用。两个栈实现一个队列
方法:栈一进行压栈,当出栈时,如果栈二不为空则出栈二数据,如果为空而栈一不为空,将栈一数据全部出栈压入栈二,再从栈二出栈。旋转数组中的最小数字
方法:旋转数组中如果旋转数大于0,则最左一定大于最右,同二分法查找,例{3,4,5,6,7,1,2};最中间大于最左时,min=left,否则如果小于最右则min=right。这里需要注意的两点是,如果旋转数为0,则最左为最小;如果左右都等于中间数时,使用遍历查找,不可以用二分。斐波那契数列系列问题
方法: 使用3个数,第三个数记录和,同时向后移动,1=2,2=3,其中变态青蛙可以列举发现其为2^(n-1)。二进制中1的个数
方法: n=n&(n-1),可以将n中最右的1消除,使用计数器计算1个数。相关文章推荐
- 剑指offer--DP类题目汇总
- 《剑指offer》 题目汇总
- 面经题目汇总
- LeetCode之Trie题目汇总
- 5-6月题目汇总(5.30---6.4)
- 【Learning】Link-Cut Tree 题目汇总
- html5 面试题目汇总
- 前端面试题目汇总
- 随机数生成问题分类以及题目汇总
- 《剑指Offer》题目:二叉树的镜像
- 九度题目1372:最大子向量和(连续子数组的最大和) 剑指offer
- C/C++ 笔试、面试题目大汇总
- Web前端面试题目汇总
- 剑指Offer——京东实习笔试题汇总
- 数据结构(c)试验题目汇总
- PHP经典面试题目汇总(上篇)
- SAT历年真题之:作文题目汇总(一)
- →『C/C++ 笔试、面试题目大汇总(16-20)』
- 剑指offer题目及答案
- Java面试题目汇总/英文Java面试题(核心知识)