自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

转载 ConcurrentHashMap和HashMap的区别

从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable

2016-03-29 10:35:00 827

原创 Oracle scott账户被锁定,scott默认密码,sys,system默认密码

oracle帐号scott被锁定如何解锁 具体操作步骤如下: C:> sqlplus 请输入用户名:sys 输入口令:sys as sysdba //注意:在口令这里输入的密码后面必须要跟上 as sysdba 才可以。 SQL> alter user scott account unlock;      用户已更改. SQL

2016-03-28 17:06:17 33120

原创 Python3基本数据类型

Python3 基本数据类型Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。Python 3中有六个标准的数据类型:Numbers(数字)String(字符串)List(列表)Tuple(元组)Sets(集合)

2016-03-27 19:04:48 878

原创 带备忘的斐波那契算法

带备忘的斐波那契算法

2016-03-26 12:03:18 456

原创 Dijkstra

指定一个点(源点)到其余各个顶点的最短路径-单源最短路径( Dijkstra算法)1、将所有顶点分为两部分:已知最短路程的顶点集合P和未知最短路径的顶点集合Q。最开始,已知最短路径的顶点集合P中只有源点一个顶点。我们这里用一个book数组来记录哪些点在集合P中。例如对于某个顶点i, 如果book[i] 为1则表示这个顶点在集合P中,如果book[i]为0则表示这个顶点在集合Q中。2

2016-03-25 17:44:54 465

转载 Floyd-Warshall算法

loyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1 void Floyd(){2     int i,j,k;3     for(k=1;kn;k++)4         for(i=1;in;i++)5             for(j=1;jn;j++)6   

2016-03-25 17:10:07 631

转载 单例模式

本文来源于:http://cantellow.iteye.com/blog/838473第一种(懒汉,线程不安全): Java代码  public class Singleton {      private static Singleton instance;      private Singleton (){}        public static Sin

2016-03-23 23:24:21 323

转载 Hibernate缓存

本文来源于:http://www.cnblogs.com/wean/archive/2012/05/16/2502724.html一、why(为什么要用Hibernate缓存?)Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的

2016-03-23 21:54:27 388

转载 HashTable 和 HashMap的区别

本文来源于:http://blog.csdn.net/shohokuf/article/details/3932967我们先看2个类的定义[java] view plain copypublic class Hashtable      extends Dictionary      implements Map, Clo

2016-03-22 00:26:29 433

转载 HashMap的工作原理

HashMap的工作原理

2016-03-22 00:21:30 324

原创 实现对象的克隆

实现对象的克隆有两种方式:1)实现Clonable接口并重写Object类的clone()方法2)实现Serializable接口,通过对象的序列化和反序列化,可以实行真正的深度克隆package zqd.demo;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import ja

2016-03-19 13:03:42 361

原创 Java中访问权限修饰符protected, default

作用域  当前类   同package  子孙类其他package public√  √ √√ protected√√√× default√√×× private√××× 

2016-03-18 00:04:04 4409

原创 各种排序算法的性能

2016-03-17 16:58:46 395

原创 输出一个数n的全排列

题目:输入一个数n, 输出1~n的全排列。package smart;public class Test { public static void main(String[] args) { dfs(4); } /* * 打印1~n的全排列 */ public static void dfs(int n){ int[] arr = new int[n]; in

2016-03-17 12:06:25 6228

转载 关系数据库规范化理论

关系数据库规范化理论

2016-03-16 22:53:23 8360

原创 static 块以及代码块执行顺序

static块,普通代码块,构造代码块执行顺序

2016-03-16 16:17:03 6488

转载 Java Socket编程

java socket

2016-03-16 10:09:40 368

原创 贝叶斯公式

P(A|B)=( P(B|A)*P(A) ) / P(B);推导: P(AB)=P(A)*P(B|A) = P(B) * P(A|B);

2016-03-14 17:49:23 435

原创 不用加减乘除做加法

题目:写一个函数,求两个整数之和,要求在函数体内不得使用+,-,* , /四则运算符号。public static int sum(int num1, int num2){ int sum =0,carry=0 ; do{ sum = num1 ^ num2; carry = (num1&num2)<<1; num1 = sum; num2 = carry;

2016-03-13 21:01:31 349

原创 判断是否是平衡二叉树

题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。package offer;/** * 判断是否是平衡二叉树 * */public class IsBalanced { public static void main(String[] args){ int[] pre = {1,2,4,5

2016-03-13 15:54:16 441

原创 二叉树的深度

题目:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根,叶结点)形成树的一条路径,最长路径的长度为树的深度。思路:如果一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1.如果既有左子树又有右子树,那该树的深度就是其左右子树深度的较大值加1.

2016-03-12 20:50:51 368

原创 统计数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数。例如输入输入排序数组{1,2,3,3,4,5}和数字3,输出2.思路:使用二分查找法,时间复杂度O(logN)package offer;/** * 统计一个数字在排序数组中出现的次数。 * 二分查找法,时间复杂度O(logN) * @author zhangqd * */public class GetNumberOfK { p

2016-03-12 20:13:01 2226

原创 两个链表的第一个公共结点

题目:输入两个链表,找出它们的第一个公共结点。package offer;/* * 两个链表的第一个公共结点 */public class FindFirstCommonNode { public static ListNode findFirstCommonNode(ListNode root1, ListNode root2){ int length1 = getList

2016-03-12 19:24:26 345

转载 Java垃圾回收机制

说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集

2016-03-12 13:12:15 332

转载 进程间通信方式

进程间通信

2016-03-12 12:39:22 463

翻译 DeadLock Prevention

本文来源与:http://tutorials.jenkov.com/java-concurrency/deadlock-prevention.htmlIn some situations it is possible to prevent deadlocks. I'll describe three techniques in this text:Lock OrderingLo

2016-03-12 00:21:35 543

原创 第一个只出现一次的字符

题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'。思路:使用哈希表,定义哈希表的键值(Key)是字符,而值(Value)是该字符出现的次数。同时我们还需要从头开始扫描字符串两次。第一次扫描字符串时,每扫描到一个字符就在哈希表的对应项中把次数加1。接下来第二次扫描,每扫描到一个字符就能从哈希表中得到该字符出现的次数。这样第一个只出现一次的字符就是符合要求的。

2016-03-09 17:25:22 351

转载 字符串的全排列

字符串的全排列设计一个算法,输出一个字符串字符的全排列。比如,String = "abc"输出是"abc","bac","cab","bca","cba","acb"算法思想从集合依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理

2016-03-08 22:27:54 338

原创 二叉搜索树与双向链表Java

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的方向。思路:在二叉搜索树中,左子结点的值总是小于父子结点的值,右子结点的值总是大于父结点的值。因此在转换成排序的双向链表时,原先指向左子节点的值调整为 链表中指向前一个结点的指针,原先指向右子结点的指针调整为链表中指向后一个结点的指针。根结点,左子树和右子树。在把左,右

2016-03-08 18:51:12 1190

原创 二叉搜索树的后序遍历序列Java

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true, 否则返回false。假设输入的数组的任意两个数字都互不相同。思路:在后序遍历得到的序列中,最后一个数字是树的根结点的值。数组中前面的数字可以分为两部分:第一部分是左子树根结点的值,它们都比 根结点的值小;第二部分是右子树根结点的值,它们都比根结点的值大。package offer;public

2016-03-08 16:10:11 1615

原创 从上往下打印二叉树

题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左按照从左到右的顺序打印。思路:使用队列。广度优先遍历二叉树。不管是广度优先遍历一个有向图还是一棵树,都要用到队列。第一步我们把起始节点(对树而言是根结点)放入队列中。接下来每一次从队列的头部取出一个结点,遍历这个结点之后把它能到达的结点(对树而言是子节点)都依次放入对列。重复这个遍历过程,直到队列中的结点全部被遍历为止。packag

2016-03-08 13:20:01 359

原创 栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是压入序列,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不是该栈的弹出序列。思路:构造一个辅助栈,如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。如果下一个弹出的数字不在栈顶,我们把压栈序列中还没有入栈的数字压入辅助

2016-03-08 12:15:56 324

原创 包含min函数的栈Java

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min, push, 及pop的时间复杂度都是O(1)。思路:使用两个栈,当向栈中添加元素时,与辅助栈中元素比较,如果小,向辅助栈中添加该元素,向辅助栈中再次添加辅助栈栈顶元素。package offer;import java.util.Stack;public class MinStac

2016-03-08 10:07:25 779

原创 二叉树的镜像

题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。通过画图,可知二叉树的镜像如下图所示:Java代码:package offer;import java.util.LinkedList;import java.util.Queue;public class MirrorRecursively { /* * 求二叉树的镜像 * 先前序遍历这棵树

2016-03-07 21:24:04 265

原创 树的子结构

题目:输入两棵二叉树A 和B,判断B是不是A的子结构。(B树是否在A树中)思路:第一步在树A中找到和B的根结点的值一样的结点R, 第二步再判断树A中以R为根结点的子树是不是包含和树B一样的结构。package offer;public class SubTree { public static void main(String[] args) { BinaryTreeNode n

2016-03-06 18:23:56 312

原创 合并两个递增排序的链表

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。package offer;public class MergeSortedLists { public static void main(String[] args) { ListNode node1 = new ListNode(1); ListNode node2 = new ListNod

2016-03-06 16:55:07 692

原创 反转链表Java

题目:定义一个链表,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路:反转链表时,为了保证链表不断开,需要保存三个引用,指向前一结点的引用,当前结点的引用,指向后一结点的引用。//反转链表 public static ListNode reverseList(ListNode head){ if(head==null)return null; ListNode re

2016-03-06 13:06:04 459

原创 链表中倒数第k个结点java

题目:输入一个链表,输出该链表中倒数第k个结点。为了符合大多人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。思路:两个指针,需要注意链表总数是否少于k。/* * 求链表的倒数第k个结点 */ public static ListNode findKthToTail(ListNode head,int k){ if(head==null || k==0) retur

2016-03-06 12:29:12 1534

原创 调整数组顺序使奇数位于偶数前面Java

题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。package offer;public class ReorderOddEven { public static void main(String[] args) { int[] arr = {4,3,5,6,9,10,12}; reorderOddEv

2016-03-06 11:15:23 613

原创 O(1)时间删除链表结点java

题目: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。思路:把下一结点的内容复制到需要删除的结点,删除下一结点,相当于删除当前结点。   当我们想删除一个结点时,并不一定要删除这个结点本身。可以先把下一个结点的内容复制出来覆盖被删除结点的内容,然后把下一个结点删除。假定待删除结点在链表中。/* * O(1)时间删除单链表某一结点 */ public

2016-03-06 10:07:55 1573

空空如也

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

TA关注的人

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