自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农小札

纸上得来终觉浅, 绝知此事要躬行

  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java多态易错点

2016-08-31 22:08:59 549

转载 建立三个线程,A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC。

/** * 建立三个线程,A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC。 * 这个问题用Object的wait(),notify()就可以很方便的解决。 * * 主要的思想就是,为了控制执行的顺序,必须要先持有prev锁,也就前一个线程要释放自身对象锁,再去申请自身对象锁, * 两者兼备时打印,之后首先调用self.notify()

2016-08-31 10:41:37 748

原创 按之字形顺序打印二叉树

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层 按照从左到右的顺序打印,第三行再按照从左到右的顺序打印,其他行依次类推。    思路:按照之字形顺序打印二叉树需要两个栈。当打印某一行节点时,把下一行的子节点保存到相应的栈里。如果当前打印的是奇数层,则先保存左子节点再保存右子节点到第一个栈里;如果当前打印的是偶数层,则先保存右子节点再保存左子节点到第二个栈中。

2016-08-30 11:35:07 301

原创 二叉搜索树的查找、添加和删除操作

class Node{ int data; Node lChild; Node rChild; public Node(int data){ this.data=data; this.lChild=null; this.rChild=null; }}public class Tree { public static void main(String[] arg

2016-08-29 18:45:31 520

原创 查找两个字符串a,b的最长公共子串

对于两个字符串a、b,开辟一个大小为[a.length()+1][b.length()+1]的二维整型数组,初始化第一行和第一列为0,对于其他的每一个a[i][j],如果字符串a的第i个字符与字符串b的第j个字符相等,那么a[i][j]=a[i-1][j-1]+1,否则a[i][j]=0。import java.util.Scanner;public class Main{ pub

2016-08-28 15:56:59 602

原创 使用FileUpload组件上传文件

所需jar包:commons-fileupload.jar       commons-io.jarjsp页面: 上传文件 <form action="${pageContext.request.contextPath}/uploadServlet" method="post" enctype="multipart/for

2016-08-27 22:06:47 530

原创 在二元树中找出和为某一值的所有路径

请写一个程序创建一棵二元树,并按照一定规则,输出二元树根节点到叶子节点的路径。规则如下:从最顶端的根结点,到最下面的叶子节点,计算路径通过的所有节点的和,如果与设置的某一值的相同,那么输出这条路径上的所有节点。从根节点遍历树时,请请按照左到右遍历,即优先访问左子树的节点。比如下面一些转化的例子:输入"10,5,12,4,7"值,构造的树如下(注意:构造二元树时,需要从上到下一层一层

2016-08-27 11:12:12 351

原创 Spring整合hibernate

实体类:public class Users { private int id; private String username; private String pwd; public Users(){ } public Users(String username, String pwd) { this.username = username; this.pwd

2016-08-26 16:24:29 358

原创 重建二叉树

输入某二叉树的前序遍历和中序遍历结果,重建该二叉树。假设

2016-08-26 12:15:41 188

原创 用递归找出数组中最小的元素

public static int min(int[] a,int n){ if(n==0){ return a[n]; } return a[n]<min(a,n-1)?a[n]:min(a,n-1); }

2016-08-26 11:08:47 764

原创 Spring AOP的xml配置和注解配置

接口:public interface Api { public String run(String param);}实现类:public class Target implements Api { @Override public String run(String param) { System.out.println("被代理的方法"); return "这是一

2016-08-25 17:08:07 502

原创 筛选法求素数

如果一个数为素数,那么它的倍数一定是合数。由此可得,对于求n以内的素数,分配一个大小为n+1的boolean类型的数组,首先将下标为奇数的boolean量置为true,然后3开始筛选。import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner scanner=

2016-08-25 11:02:29 404

原创 华为oj--坐标移动

开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。 输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔。 非法坐标点需要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。 下面是一个简单的例子 如: A10;S20;W10;D

2016-08-25 10:38:08 278

原创 Spring3.1 AOP开发依赖jar包

spring3.1不再把那些依赖的第三方jar包打包进来。,除了引入spring框架dist目录下的org.springframework.aop-3.1.1.RELEASE.jar之外,还需要自己下载第三方依赖包:aspectjrt.jar,aspectjweaver.jar,aopalliance.jar下载地址:

2016-08-24 22:29:00 1453

原创 普利姆算法

普里姆算法的基本思想:普里姆算法是一种构造最小生成树的算法,它是按逐个将顶点连通的方式来构造最小生成树的。从连通网络N = { V, E }中的某一顶点u0出发,选择与它关联的具有最小权值的边(u0, v),将其顶点加入到生成树的顶点集合U中。以后每一步从一个顶点在U中,而另一个顶点不在U中的各条边中选择权值最小的边(u, v),把该边加入到生成树的边集TE中,把它的顶点加入到集合U中。如此重

2016-08-24 12:07:17 10542

原创 称砝码

现有一组砝码,重量互不相等,分别为m1、m2……mn;他们可取的最大数量分别为x1、x2……xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。输入 int n:n表示有多少组重量不同的砝码,1int[] weight:表示n组砝码的重量,1int[] num:表示n组砝码的最大数量,1输出利用给定的砝码可以称出的不同

2016-08-23 17:58:41 372

原创 最短路径

public class Demo { public static void main(String[] args) { int[][] graph=new int[][]{{65535,65535,10,65535,30,100}, {65535,5,65535,65535,65535,65535}, {65535,65535,65535,50,655

2016-08-23 13:31:22 160

原创 华为oj--迷宫问题

定义一个二维数组N*M(其中2int maze[5][5] = {        0, 1, 0, 0, 0,        0, 1, 0, 1, 0,        0, 0, 0, 0, 0,        0, 1, 1, 1, 0,        0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序

2016-08-22 12:13:48 1293

原创 图的邻接表存储

邻接表是图的一种链式存储结构。在邻接表中,对图中每个顶点建立一个单链表,第i个单链表中的节点表示依附于顶点Vi的边。import java.util.Scanner;class Node{ String point; //顶点 int value; //权值 Node next;}public class Graph { public static void

2016-08-22 10:15:21 275

原创 二叉树的非递归遍历

import java.util.Stack;class Node{ String data; Node lChild; Node rChild; public Node(String data){ this.data=data; this.lChild=null; this.rChild=null; }}public class Demo { public

2016-08-21 17:02:29 306

原创 整数与ip地址之间的转换

整数与IP地址间的转换题目描述原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。举例:一个ip地址为10.0.3.193每段数字             相对应的二进制数10                   000010100                    000000003   

2016-08-21 10:29:26 816 1

原创 spring ioc的简单实现

spring ioc的原理就是通过解析xml文件,然后通过反射机制创建我们所需要的类的实例,这些实例放在一个“”容器“”中测试xml文件如下: 解析xml文件的类如下,使用DOM解析来解析xml文件import java.lang.reflect.Method;import java.util.HashMap;import java.u

2016-08-20 23:15:33 180

转载 spring下载

原文  http://yanln.iteye.com/blog/2191312无论学习编程语言还是框架,个人认为与其花大量的时间搜资料,不如静心好好学习官网,官网是最好的学习资料(权威、准确的第一手材料)。 一、spring的官方网址:http://spring.io/ 二、看到这个简洁清新的界面,导航很明确,进入projects whatever th

2016-08-20 13:10:24 209

转载 堆与堆排序

堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节

2016-08-20 11:32:59 293

原创 去除数字里多余的零

public static String getplainNumber(String number) { return BigDecimal.valueOf(Double.valueOf(number)) .stripTrailingZeros().toPlainString(); }

2016-08-12 10:15:24 491

原创 华为oj--走格子

请编写一个函数(允许增加子函数),计算n x m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。解题思路:对于一个n*m的格子,由题意,若右走则变成n*(m-1)的格子,若往下走则变成(n-1)*m的格子,由此可得递推关系式 f(n,m)=f(n-1,m)+f(n,m-1),又当格

2016-08-12 08:55:23 1175

原创 回型矩阵

给定正整数n,输出一个n*n的矩阵,如n=3,输出矩阵如下:      1  2   3      8  9   4      7  6   5import java.util.Scanner;class Fun{ public void fun(int[][] a,int n,int k,int count,int N){ if(n<=0) return;

2016-08-11 13:37:34 1016

原创 放苹果

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。解题思路:看到这道题目,首先想到的是数学里的排列组合的插空法,即将N个盘子插到M+1个位置。首先将第N个盘子固定在第M+1个位置,然后其余每个盘子都有M种可能,递归调用,去除不合格的结果,即为所求。总结:看网上别人都是通过递推式求解的,效率很高。相比之下,我

2016-08-11 10:06:44 373

原创 字符串合并处理

按照指定规则对输入的字符串进行处理。详细描述:将输入的两个字符串合并。对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。对排训后的字符串进行操作,如果字符为‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,则对他们所代表的16进制的数进行BIT倒序的操作,并转换为相应的大写字符。如字符为‘4’,为0100b,则翻转后

2016-08-10 10:36:46 325

原创 sunday算法

sunday算法的概念如下:Sunday算法是Daniel M.Sunday于1990年提出的一种比BM算法搜索速度更快的算法。其核心思想是:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。假设在发生不匹配时S[i]≠T[j],1≤i≤N,1≤j≤M。此时已经匹配的部分为u,并假设

2016-08-10 08:35:39 290

原创 表达式求值

这是刚学数据结构时候碰到的题了,当时还觉得有点难,现在又碰到了这道题,理清思路后还是把它编出来了。这道题核心思想是将中缀表达式转换为后缀表达式。我用了两个栈来实现这个操作。解析输入的字符串,如果是数字则入数字栈,是操作符则比较当前操作符和操作符栈顶操作符的优先级,若当前操作符优先级较高,则从数字栈中弹出两个数进行运算,否则将当前操作符压入栈中,其中‘)’不入栈并弹出‘(’。import jav

2016-08-09 10:04:08 174

原创 素数伴侣

若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的N(N为偶数)个正整数中挑选出若干对组成“素数伴侣”,挑选方案多种多样,例如有4个正整数:2,5,6,13,如果将5和6分为一组中只能得到一组“素数伴侣”,而将2和5、6和13编组将得到两组“素数伴侣”,能组成“素数伴侣”最多的方案称为“最佳方案”,当然密码学会

2016-08-08 15:04:19 1188

原创 二叉树的相关操作(递归)

二叉树节点定义public class Node { int data; Node leftChild; Node rightChild;}一些二叉树的操作import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;

2016-08-05 13:48:55 217

原创 滑雪问题

递归方式解决滑雪问题:import java.util.Scanner;public class Test{ static int d[][]; public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int m=scanner.nextInt();

2016-08-04 15:54:06 783

原创 最长公共子序列

问题的递推式:   import java.util.Scanner;public class Test{ public static void main(String[] args) { Scanner input=new Scanner(System.in); String s1=input.nextLine(); String s2=input.next

2016-08-04 11:39:22 237

原创 编辑距离算法的实现

编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。例如将kitten一字转成sitting:sitten (k→s)sittin (e→i)sitting (→g)比如要计算ca

2016-08-04 10:01:55 430

原创 字符串的全排列

(1)求所有可能出现在第一个位置的字符,(2)把第一个字符和其后面的字符一一交换。如下图所示,分别把第一个字符a和后面的b、c等字符交换的情形。(3)固定第一个字符,求后面所有字符的排列。这个时候我们仍把后面的所有字符分成两部分:后面字符的第一个字符,以及这个字符之后的所有字符。然后把第一个字符逐一和它后面的字符交换 import java.util.HashSet;imp

2016-08-03 14:23:25 212

spring3.1 AOP依赖jar包

aspectjrt.jar,aspectjweaver.jar,aopalliance.jar

2016-08-24

空空如也

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

TA关注的人

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