![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer题解(java实现)
stayalonea
这个作者很懒,什么都没留下…
展开
-
二维数组的查找
题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解法:从数组的左上角开始查找, target比右上角的数字小,则可以排除最后一列数字;如果比右上角大,则排除第一行。 public class Solution { public boolean Find(int t原创 2017-08-05 11:08:26 · 176 阅读 · 0 评论 -
实现Singleton模式( 单例模式)
懒汉式 实现1.只适用于单线程环境 public class Singleton { private static Singleton instance = null; private Singleton(){} public static Singleton getInstance(){ if(null == instance)原创 2017-08-05 11:44:48 · 188 阅读 · 0 评论 -
从尾到头打印链表每个节点的值。
输入一个链表,从尾到头打印链表每个节点的值。 1.用栈实现: package point2Offer; import java.util.*; /** * Created by GX on 2017/8/5. * 从尾到头打印链表 */ public class PrintArrayFromEnd { public ArrayList printListFromTailToH原创 2017-08-05 15:02:07 · 212 阅读 · 0 评论 -
重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路: 前序遍历:根-左-右 中序遍历:左-根-右 1.先看前序遍历后的数组;第一个数字是1,说明该二叉树的根结点为1。 2.看结点1在中序遍历后数原创 2017-08-05 16:11:19 · 184 阅读 · 0 评论 -
面试题7(1):用2个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题:当push值时,不敢栈1中有值没值,压入栈1即可。 当pop值时,如果栈2中没值,栈1中有值;则要弹出的是栈1中栈底的值。则需要把栈1中的值依次弹出压入栈2中,再弹出栈2栈顶的值即是栈1栈底的值。如果栈2中有值,则直接弹出栈2栈顶的值即可。public class Use2StackImplQueue原创 2017-08-05 16:55:03 · 172 阅读 · 0 评论