
剑指offer
杜鲁门
keep moving
展开
-
剑指offer 面试题2—实现单例模式
终于把简直offer看完了一遍所以第二遍我决定要美一个题自己去实现一遍,会加入自己的理解(但是不一定对哈)题目:设计一个类,我们只能生成该类的一个实例。饿汉试package T2Singleton;/** * 饿汉式 * @author yxx * */ public class Singleton { //私有构造方法 private Singleton() {} pr原创 2017-02-14 09:52:40 · 537 阅读 · 0 评论 -
剑指offer 面试题3—二维数组中找数
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。基本思想: 首先选取数组中右上角的数字。如果等于要找的数字,结束。如果大于要找的数字,剔除这个数字所在的列;如果小于要找的数字,剔除这个数字所在的行。public static boolean find(int[][] ar原创 2017-02-14 12:59:00 · 498 阅读 · 0 评论 -
剑指offer 面试题4—替换字符串中空格
题目: 实现一个函数,把字符串中的每个空格替换成“%20”。加入输入“we are happy.”,则输出“we%20are%20happy.”。它想说的思想:如果是字符数组来存储的话,每次扫描遇到空格都会导致后面的字符向后移动,然后为了节省这么多移动的时间,就先统计空格的个数,然后数组整体扩容空格数乘以3的空间,把那里当作结束,再从尾到头遍历,找到空格就移,这样整体就只移过了一次。效率会高很多。原创 2017-02-14 13:43:30 · 452 阅读 · 0 评论 -
剑指offer 面试题5—从尾到头打印链表
题目: 输入一个链表的头结点,从尾到头反过来打印出每个结点的值。考虑用栈public void invertedList1(ListNode head) { if (head == null) { return; } ListNode p = head; Stack<Integer> stack = new S原创 2017-02-14 14:29:08 · 434 阅读 · 0 评论 -
剑指offer 面试题6—重建二叉树
题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。分析:前序遍历的第一个节点时根,在中序中找到这个根节点,然后左边就是左子树,右边就是右子树,这样就可以递归。用数组来记录,然后每次还重新原创 2017-02-14 15:16:25 · 391 阅读 · 0 评论