java
KeepThinking_
这个作者很懒,什么都没留下…
展开
-
随笔-spring中的@Autowired无效的问题
要Autowired生效需要注意注意两点:1.必须在spring的主配置文件(如:applicationContext.xml)中配置这样一句:2.不要单单使用BeanFactory或者XmlBeanFactory去调用getBean来获得对象,应该使用ApplicationContext,这个问题网上也有人问过:http://stackoverflow.com/questions/718原创 2012-12-07 19:05:02 · 7082 阅读 · 0 评论 -
随笔:设计一个栈结构,使得取出栈中最大值时间复杂度为O(1)
题意:设计一个数据结构,符合栈的特点,即“后进先出”,且加多一个要求,使得取出该栈所有元素最大值的时间复杂度可以控制为O(1)。说个很明显的错误,使用一个辅助变量,保存当前最大值,每次入栈的值都与该最大值比较,大则替换为最大值。这样取出最大值则返回该辅助变量,很显然这个只能实现一次正确返回。总体实现很简单,就是开辟多一个存储最大值索引的栈,该栈和存储数据的栈保持同步,即原创 2013-06-16 20:07:42 · 4104 阅读 · 2 评论 -
随笔:实现一个队列,使得取出最大值的时间复杂度较低
该题是《编程之美》中的题目,最后提供的方法看起来挺好玩的,书里的代码看起来好像实现不了,做了下小调整,整成java的,测试可以实现功能。取出最大值的时间复杂度为O(1)。这个题有几种解法,如引入最大堆,这样取出最大值的时间复杂度为O(1),入队列和出队列的时间复杂度要O(log2N)提供一种解法:用栈结构实现取出最大值功能比较简单,而用两个栈可以实现一个队列的功能,所以这道题就用两个具原创 2013-06-16 20:48:38 · 2551 阅读 · 0 评论 -
随笔:给定一个日期:yyyy-mm-dd,求出给定日期的下一天日期并输出
为了准备itat,不得不把往年java的复赛题搜出来做做,今天做了第六届复赛题的A,B卷,总体感觉不难,看有人在问B卷的最后一道题的答案,现在将我的代码公布如下,希望有人可以帮忙找下bug,代码只是完成其要求的功能而已,没有做细节方面的异常处理!题目是:编程实现输入格式为"yyyy-mm-dd"的字符串,获得一个给定的日期,计算此日期的下一天的日期并输出,程序验证的时候,要考虑任何日期是月底、原创 2012-10-20 20:39:02 · 5531 阅读 · 0 评论 -
蓝桥杯-买不到的数目
扩展欧几里得算法的一种应用原创 2013-07-07 13:07:06 · 4383 阅读 · 1 评论 -
JAVA String.format 方法使用介绍
1.对整数进行格式化:%[index$][标识][最小宽度]转换方式 我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧:标识: '-' 在最小宽度内左对齐,不可以与“用0填充”同时使用'#' 只适用于8进制和1转载 2013-07-08 14:41:40 · 1189 阅读 · 0 评论 -
java使用一维数组输出杨辉三角形
题目:打印出杨辉三角形的前十行,杨辉三角形前几行如下排列:1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 java代码实现:public class YangHui { public static void main(String[] args) { int[] uprowData = new int[10];//原创 2012-10-28 11:21:59 · 4151 阅读 · 0 评论 -
蓝桥杯-地铁换乘
为解决交通难题,某城市修建了若干条交错的地铁线路,线路名及其所属站名如stations.txt所示。线1苹果园....四惠东线2西直门车公庄....建国门线4....其中第一行数据为地铁线名,接下来是该线的站名。当遇到空行时,本线路站名结束。下一行开始又是一条新线....直到数据结束。如果多条线拥有同一个站名,表明原创 2013-06-25 13:05:29 · 2330 阅读 · 0 评论 -
蓝桥杯-排日程
【编程题】(满分32分) 某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天。 上级要求每个人每周的工作日和休息日安排必须是固定的,不能在周间变更。 此外,由于工作需要,还有如下要求: 1. 所有人的连续工作日不能多于3天(注意:周日连到下周一也是连续)。 2. 一周中,至少有3天所有人都是上班的。原创 2013-07-01 13:35:27 · 2008 阅读 · 4 评论 -
蓝桥杯-火柴游戏
【编程题】(满分34分) 这是一个纵横火柴棒游戏。如图[1.jpg],在3x4的格子中,游戏的双方轮流放置火柴棒。其规则是: 1. 不能放置在已经放置火柴棒的地方(即只能在空格中放置)。 2. 火柴棒的方向只能是竖直或水平放置。 3. 火柴棒不能与其它格子中的火柴“连通”。所谓连通是指两根火柴棒可以连成一条直线,且中间没有其它不同原创 2013-07-01 20:08:17 · 1708 阅读 · 0 评论 -
求两个DNA的距离-最短编辑距离变形
题意如下:脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化问题,我们假设,D原创 2013-06-16 18:12:12 · 3451 阅读 · 0 评论 -
哈夫曼编码(java版)
哈夫曼树又叫最优二叉树,是一类带权路径最短的二叉树。哈夫曼树是二叉树的一种应用,在信息检索中很常用。哈夫曼树可以用来解决报文编码问题,在通信领域有着非常广泛的运用。具体什么是带权路径二叉树,什么是哈夫曼编码这里不做介绍,这里只介绍代码,必须先知道这些概念才能阅读代码!以下为全部代码,做了比较详细的注释,所以不做另外解释节点类:package huffman_binary_tree;原创 2013-05-01 16:38:15 · 3137 阅读 · 1 评论 -
循环小数
1/7 = 0.142857142... 是个无限循环小数。任何有理数都可以表示为无限循环小数的形式。本题目要求即是:给出一个数字的循环小数表示法。例如:输入:1,5则输出:0.2输入:1,7则输出:0.[142857]输入:7,6则输出:1.1[6]用户输入的格式是:整数,整数每个整数范围均为:1~100原创 2013-04-20 17:16:05 · 1830 阅读 · 0 评论 -
使用递归实现全排列
重新看了回递归之后,顺便写了个使用递归实现全排列的算法,感觉空间复杂度有点大,等有时间再更改吧,发表出来,因为算法功底实在有限,所以希望哪位可以帮忙优化优化,本人将感激不尽!算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况代码如下:原创 2013-01-19 16:44:05 · 1869 阅读 · 1 评论 -
随笔:1 2 3 4 5 6 7 8 9 =110 在左边数字之间加入运算符(+、-或不加),使得等式成立
这道题是第三届蓝桥杯中的题,原题是这样的:匪警请拨110,即使手机欠费也可拨通! 为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练! 某批警察叔叔正在进行智力训练: 1 2 3 4 5 6 7 8 9 = 110; 请看上边的算式,为了使等式成立,需要在数字间填入加号或原创 2013-01-20 14:16:56 · 7362 阅读 · 3 评论 -
找到N个无序数中第M大的数
题目:在一组无序数中找到第M大的数,如一组无序数中:3,2,321 中,找到第2大的数,显然这里可以明显的看出是数字3。解析:这种类型的题有很多种解法,最简单的做法无非是先整体排完序之后直接找第M个数,这种的效率明显是很低的。我这里使用快速排序的思想来解这道题,首先在无序数中随便找一个数作为中间值(我这里用的是第一个数),然后将比中间值大的数移动到中间值左边,比中间值大的数移动到中间值右边原创 2013-04-08 11:00:45 · 2734 阅读 · 0 评论 -
翻手算法
看过编程珠玑的一定对里面用来解决“字符循环左移”的翻手算法印象深刻,这个算法非常容易实现,效率还贼给力!先说一下题意:如现在有一串字符:ABCDEFG,让前两个字符循环左移到整个个字符串的右边,结果即:CDEFGAB在具体讲这种算法之前,先来看看线性代数里的转置。(AB)T等于什么?等于BTAT。那么(ATBT)T等于什么?等于(BT)T(AT)T,即BA。啊哈!我原创 2013-04-08 12:59:51 · 2779 阅读 · 0 评论 -
一组数中最长连续递增子序列个数
题意:有一组数,如,1,2,3,-2,4,6,10,求该组数中最长连续递增子序列的个数,显然这道题的答案是从-2到10一共4个数,所以结果为4.解析:这道题最直观的方法就是用两个嵌套的循环,遍历的过程中,当当前数比上一个数大时,则计数变量加1,否则退出内层循环,将计数变量和当前最大连续递增个数变量比较,当比其大时,重新赋值最大连续递增个数变量。这种方法的时间复杂度显然为O(n^2)。这里我原创 2013-04-08 19:40:39 · 2789 阅读 · 0 评论 -
整数划分
整数划分问题相信很多人都做过,题意是这样的:将正整数n表示成一系列正整数之和,n=n1+n2+,,,,,+nk(其中n1>=n2>=......>=nk>=1,k>1)例如:正整数6有如下11种不同的划分,6=1+1+1+1+1+16=1+1+1+1+26=1+1+1+36=1+1+2+26=1+1+46=1+2+36=1+56=2+2+26=2+4原创 2013-04-10 12:52:03 · 1179 阅读 · 0 评论 -
最短路径问题
题目来源:http://acm.hdu.edu.cn/vcontest/vtl/problem/showproblem/vtlid/4642/problemid/1011java代码如下:public class Shortest {//http://acm.hdu.edu.cn/vcontest/vtl/problem/showproblem/vtlid/4原创 2013-04-10 13:08:50 · 894 阅读 · 0 评论 -
KMP算法代码(java版)
JAVA代码如下:public class KMP { public static void main(String[] args) { KMP kmp = new KMP(); String target="asfsdfssaaabcadsdfaaaaaaaadsf"; String mode="fsdfss"; boolean result=kmp.mathStrin原创 2013-04-19 15:42:22 · 1313 阅读 · 0 评论 -
矩阵运算
在编写图形界面软件的时候,经常会遇到处理两个矩形的关系。 如图【1.jpg】所示,矩形的交集指的是:两个矩形重叠区的矩形,当然也可能不存在(参看【2.jpg】)。两个矩形的并集指的是:能包含这两个矩形的最小矩形,它一定是存在的。本题目的要求就是:由用户输入两个矩形的坐标,程序输出它们的交集和并集矩形。 矩形坐标的输入格式是输入两个对角点坐标,原创 2013-04-20 09:08:36 · 1309 阅读 · 0 评论 -
代码集-字典树
//字典树public class DirectoryTree { //根结点 private DirTreeNode root=new DirTreeNode(); public static void main(String[] args) { DirectoryTree tree=new DirectoryTree(); tree.insert("Hello"); tre原创 2013-07-03 11:12:11 · 1184 阅读 · 0 评论