自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 刷题之二叉树----判断一棵树是否为完全二叉树

思路:好的,上代码:class CheckCompletion { public boolean chk(TreeNode root) { // write code here if(root == null) return true; Queue q = new LinkedList();

2016-07-04 17:31:52 379

原创 那些年我们刷过的算法题——输入数组构建MAXtree

自我感觉这道题目还是挺难的,想了很久,还是参考了别人的代码,这个要反复回看几遍吧。思路:使用辅助result数组来完成对数组中每个元素的父节点下标的记录。其中父节点的判断使用辅助栈完成。具体思路请看代码注释.对于一个没有重复元素的整数数组,请用其中元素构造一棵MaxTree,MaxTree定义为一棵二叉树,其中的节点与数

2016-06-29 11:47:15 997

原创 那些年我们刷过的算法题---滑动窗口练习题

有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 返回一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值。 以数组为[4,3,5,4,3,3,6,7],w=3为例。因为第一个窗口[4,3,5]的最大值为5,第二个窗口[3,5,4]的最大值为5,第三个窗口[5,4,3]的最大值为5。第

2016-06-29 09:43:00 6288

原创 输入两颗二叉树A,B,判断B是不是A的子结构

方法一:最简单就是首先判断两棵树的根节点是否相同,如果相同则判断两颗树的左节点是否对应,右结点是否对应,如果两个根节点值不同,主树左节点与子树根节点判断,主树右结点与子树根节点判断,然后再判断对应节点是否相同即可复杂度:O(m*n)方法二:首先两棵树序列化为字符串,然后就是判断字符串之间的包含问题了,用KMP算法判断结果复杂度:O(m+n)上代码:public clas

2016-06-25 16:00:19 1676

原创 那些年我们刷过的算法题(排序)---有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序

有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序只有三个数字,只能用交换,原地排序,其实交换次数最少,我为什么马上就想到了类似于快排的数组划分过程,思路:从第一个元素开始遍历,如果是1则位置不变,如果是0与前面第一个元素交换left++,如果是2与最后元素交换right++,遍历过程用i做标记,与元素交换的位置用left和right做标记,知道i大

2016-06-23 15:25:42 1446

原创 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定

已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序给定一个int数组A,同时给定A的大小n和题意中的k,请返回排序后的数组。思路:使用空间复杂度为O(nlogn)中的堆排序,因为快速排序是随机选取一个数然后左右分段,归并排序是分成n个只有一个元素的序列

2016-06-23 10:59:58 6585 1

转载 java设计模式之策略模式(转载)

(转载)原文:http://zhanche2011.iteye.com/blog/1169948 本文探讨初学使用策略模式时遇到的一些疑惑,以及在工作中慢慢解决之前遇到的疑惑,借此与大家分享。比如说本文谈到策略模式中环境角色Context的用处,为什么一定要用,可不可以将此取消。这些都是在学习和工作的实践总结中慢慢体会到的。    首先,我们来看下策略模式的概念。一般的解释如下:   

2015-12-16 21:19:34 244

转载 java设计模式---责任链设计模式

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。适用场景:1、有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定;2、在不明确指定接收者的情况下,向多个对象中的一个提交一个请求;3、处理一个请求的

2015-12-15 16:38:47 249

原创 java集合框架遍历元素方法总结

遍历集合的方法的总结: 知道了Collection主接口的所有方法之后,对遍历结合的方法进行一个全面的总结:方法1  使用iterable接口下的foreach方法:从api可以知道Collection这个主接口是继承了Iterable接口的,所以iterable提供的遍历方法,collection的实现结合类都可以用此方法进行遍历元素(public interface Collect

2015-12-04 17:02:57 691

原创 java基础回顾----抽象类和抽象方法,接口

一1.抽象方法和抽象类都必须使用abstract修饰2.抽象类不能被实例化,无法用new关键字来创建出一个实例。3.抽象类中可以包含:成员变量,方法(普通方法,抽象方法都可以),构造器,初始化块,内部类,一共5个部分。其中构造器不能用于创建实例,主要用于被其子类调用。4.

2015-10-28 14:56:24 485

原创 java基础回顾----多态

package com.chapter_five;public class SubClass extends BaseClass{ //重新定义book来隐藏父类变量 public String book = "javaee开发"; public void test() { System.out.println("子类的覆盖父类的方法"); } public void su

2015-10-22 10:31:31 346

原创 java基础回顾----java基本数据类型及变量

一、基本数据类型 需要注意的有以下几点:1.整型 byte 8位、short 16位、int 32位、double 64位因为他们都是有符号数,所以其中一位来表示数字的正负,则他们的取值范围分别是-2^(n-1)到2^n -12.浮点型 java与c语言不同,float型定义变量后面必须加f或者F        例如:float myflt=12.34f;3.字符型

2015-10-17 16:35:24 499

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除