
面试精选
饭饭的小肚子
菜鸟中的战斗机。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer-重建二叉树(java版)
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。 分析: 通过前序序列得到根节点的值 通过中序序列得到左右子树的长度 通过根节点位置和左右子树的长度,能够得到前序序列左右左子树起始位原创 2017-08-22 17:35:15 · 380 阅读 · 1 评论 -
剑指offer-斐波那契数列
斐波那契数列: f(0)=0; f(1)=1; f(n)=f(n-1)+f(n-2); (n>1) public class 面试题10 { static long[] f; public static long method1(int n) { if (f[n] != 0) return f[n]; if (n <=原创 2017-08-23 13:53:10 · 207 阅读 · 0 评论 -
快速排序
该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。虽然快速排序称为分治法,但分治法这三个字显然无法很好的概括快速排序的全部步骤。因此我的对快速排序作了进一步的说明:挖坑填数+分治法: 先来看实例吧,定义下面再给出(最好能用自己的话来总结定义,这样对实现代转载 2017-08-23 15:18:39 · 191 阅读 · 0 评论 -
剑指offer-数值的整数次方
public class 面试题16 { public static double Power(double base, int exponent) throws Exception { double result = 0.0; if (base == 0.0 && exponent < 0) throw new Exception("非原创 2017-08-29 01:40:50 · 315 阅读 · 0 评论 -
剑指offer--顺时针打印矩阵
顺时针打印矩阵 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 (注意:矩阵可以是3*3,4*2,6*1) 分析: 从矩阵[0][0]开始遍历。 先遍历到矩阵某个方向上的末端。 换下个方向。如果没有可以遍历的位置,结束遍历。 如果有可以遍历的位置,继续第2步。 问题的关键: 如何判断某个位置是否被遍历过? 创建一个与矩阵同等大小的标记矩阵,每经过一个点,便标记一次原创 2017-09-07 16:33:38 · 231 阅读 · 0 评论 -
剑指offer--栈的压入、弹出序列
import java.util.Stack;/** * 栈的压入,弹出序列 题目:输入两个整数序列,第一个序列表示栈的压入顺序 * ,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不等。例如,序列{1,2,3,4,5}是某栈的压栈顺序,序列{4,5,3,2,1}是该栈 * 序列对应的一个弹出序列,但{4,3,5,1,2}就不可能是该压栈序列的弹出序列 * */ public原创 2017-09-08 18:05:26 · 219 阅读 · 0 评论 -
两个字符串的最长公共子序列
求两个字符串的最长公共子序列和最长公共子串是两个问题。。 这次先解决子序列的问题。 从一个字符串S中移除零个或者多个字符得到的序列称为S的子序列。 例如”abcde”的子序列有”abe”,”“,”abcde”等。 定义LCS(S,T)为字符串S和字符串T最长公共子序列的长度,即一个最长的序列W既是S的子序列也是T的子序列的长度。通用方法是通过动态规划求解。将问题本身化为相同规模的子问题求解。比原创 2017-09-12 18:08:52 · 878 阅读 · 0 评论