- 博客(8)
- 收藏
- 关注
原创 用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。package Offer;import java.util.Stack;/*Created By guolujie 2017年10月18日*/public class TwoStackToQueue { Stack stack1 = new Stack(); Stack stack2 = new
2017-10-18 15:43:22 162
原创 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。package Offer;/*Created By guolujie 2017年10月18日*/class TreeNode{ int val; Tr
2017-10-18 15:22:39 175
原创 输入一个链表,从尾到头打印链表每个节点的值。
输入一个链表,从尾到头打印链表每个节点的值。package Offer;import java.util.ArrayList;import java.util.List;import java.util.Stack;/*Created By guolujie 2017年10月18日*/class ListNode{ int val; ListNode next = null;
2017-10-18 14:37:52 314
原创 《设计模式——java版》(三)
三、抽象工厂模式 1.为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。抽象工厂模式是工厂方法模式的升级版本。在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。 2.抽象工厂模式与工厂方法模式类似,也是有四个不同的角色: (1)抽象工厂角色:任何创建对象的工厂类必须实现这个接
2017-10-17 10:38:31 149
原创 《设计模式——java版》(二)
第三章 创建型模式简介一、单例模式 1. 意思是:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 2. 适用场景:建立目录、数据库连接等需要单线程操作的场合,用于实现对系统资源的控制。 3.分类:饿汉式:类加载的时候就进行对象实例化 懒汉式:第一次引用类时,才进行对象
2017-10-16 16:36:09 183
原创 《设计模式——java版》(一)
一、设计模式简介 1. 设计模式是一套被反复使用、多数人知晓、经过分类编目的优秀代码设计经验的总结。使用设计模式是为了重用代码,使代码更容易理解并保证代码的可靠性。 2. Java设计模式贯彻的原理是:面向接口编程、而不是面向实现。其目标原则是:降低耦合性、增强灵活性。 3. 设计模式的要素是: 3.1模式名称
2017-10-16 13:43:57 240
原创 在一个字符串中个找到只出现一次的第一个字符
1. 看到题目,我首先想到的第一种方法是:简单粗暴的搜索,从头到尾遍历每个字符,看它的前后是不是有与之相等的字符(不包括本身),如果有那么就继续下一个字符,如果没有就输出该字符(这里需要注意的是,有的人写出来的算法,没有考虑到最后一个字符只出现一次的情况,需要判断当前位置是不是最后,如果是的话直接返回最后一个字符就可以了)。时间复杂度为O(n^2),没有使用额外的空间//第一种方式,不使用额外
2017-10-13 16:00:29 3851
转载 最大子序列、最长连续公共子串(连续)、最长公共子序列(动态规划)
原文链接:http://blog.sina.com.cn/s/blog_54f82cc20100zi4b.html最大子序列最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的
2017-10-11 15:35:19 1912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人