题意:统计前缀在串中出现的次数思路:next数组,递推#include#include#includeusing namespace std;#define MaxSize 200005#define Mod 10007char str[MaxSize];int _next[MaxSize];int...
分类:
编程语言 时间:
2015-08-21 22:50:53
阅读次数:
150
红黑树的实现还真不简单,各种染色旋转足足折腾了笔者几天。。 ????不过收获也是巨大的。笔者现在终于明白为啥二叉搜索树这么重要了,确实很有用。 ????下面上代码。 ????细心的朋友可能会觉...
分类:
编程语言 时间:
2015-08-21 21:44:19
阅读次数:
352
本系列最后一篇,综合分析下前面介绍的八种排序算法的效率,以及各自的适用情况。 通知实际测试比较各排序算法的效率,并分析各个排序算法的适用场景。...
分类:
编程语言 时间:
2015-08-21 21:37:36
阅读次数:
301
Design T-Shirt
Problem Description
Soon after he decided to design a T-shirt for our Algorithm Board on Free-City BBS, XKA found that he was trapped by all kinds of suggestions from everyone o...
分类:
编程语言 时间:
2015-08-21 21:37:54
阅读次数:
246
Spring利用动态代理技术实现了AOP增强功能。这个动态代理是通过Java的动态代理或CGLIB技术实现。具体根据代理对象实现的是类或者接口来决定。
Spring AOP的过程跟我们平时使用动态代理的过程是很相似的,只不过它帮助我们自动组装了增强方法与代理对象,这样我们就可以更加灵活,因为我们可以选择增强触发的时机,而且更加关注我们要做的事情。从原理以及源代码的角度,整个过程还是分为两个阶段,...
分类:
编程语言 时间:
2015-08-21 21:33:36
阅读次数:
261
所实现的单链表的结构如下图所示:
循环单链表的实现,和上一篇文章单链表的实现大致相同点击打开链接,略有区别:
1:循环判断的条件不再是s == NULL或者s->next == NULL,而是他们是否等于头指针。2: 断开链表时的处理,尾节点的next不是NULL,而是指向头结点
具体细节参考上一篇文章
头文件:SCList.h
#ifndef SCLIST_H
#define...
分类:
编程语言 时间:
2015-08-21 21:34:32
阅读次数:
312
所实现的双链表的结构如下图所示:
双链表的实现,和第一篇文章单链表的实现大致相同点击打开链接
本篇文章在构建节点的同时,初始化构建节点的前驱和后继,具体细节参考下列代码
头文件:DList.h
#ifndef DLIST_H_
#define DLIST_H_
typedef enum{FALSE,TRUE}Status;
#include
#include
using na...
分类:
编程语言 时间:
2015-08-21 21:33:09
阅读次数:
308
疑惑点类的转换问题代码:class A{
public:
virtual void f()
{
cout << "A" << endl;
}
};class B: public A{
public:
virtual void f()
{
cout << "B" << endl;
}
};int _tmain(int ar...
分类:
编程语言 时间:
2015-08-21 21:31:59
阅读次数:
321
#include
#include
using namespace std;
void Grial(int (*a)[5],int n)
{
//数组顺时针旋转90度。
//边界值的考虑让我小小的思考了一下。
int temp;
int startX = 0;
int startY = 0;
int j = 0...
分类:
编程语言 时间:
2015-08-21 21:31:11
阅读次数:
312
今天使用strut2+ajax进行异步上传时出错,控制台没有打印信息,ajax回调函数中alert返回值得到如下信息,大概就是空指针的意思。
实际上是上传的input name值和action变量名不一致造成。input name为myfile,变量为myFile,一个字母的大小写造成的错误!注意这个地方!HTTP Status 500 - type Exception reportmessage...
分类:
编程语言 时间:
2015-08-21 21:31:23
阅读次数:
2857
KMP
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普
拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目
的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。
接下来我们先分析三张图,S代表主串...
分类:
编程语言 时间:
2015-08-21 21:29:17
阅读次数:
298
在java开发中碰到了有些字符串是重复的,如果在进行业务处理要全部遍历太对的数据就会重复,所以在进行业务处理前进行一个去重操作。
这里由于业务需要所以先将字符串转化为string数组,使用split分割,然后将string数组一个个放到list里(list的remove可以将你不要的字符串删除掉,代参数的哦)
可以看到我使用的是list,在list里包含了一个contains函数,表示...
分类:
编程语言 时间:
2015-08-21 21:28:11
阅读次数:
169
题意:给定一个区间,求这个区间第k大的数,支持单点修改。
思路:主席树真是个神奇的东西.........速度很快但是也有一个问题就是占用内存的很大,一般来说支持单点修改的主席树套树状数组空间复杂度为O(n*logn*logn), 如果查询较少的话,可以初始的时候用一颗静态主席树,这样空间复杂度可以降为O(n*logn+q*logn*logn),勉强可以过zoj这道题。
这道题看了好久好久才懂....
分类:
编程语言 时间:
2015-08-21 21:29:57
阅读次数:
556
归并排序mergesort中基本的操作是合并两个已排序的表。因为这两个表已排序,所以若将输出放到第三个表中,则该算法可以通过对输入数据一趟排序完成。基本的合并算法是取两个输入数组A和B,一个输出数组C,以及3个计数器Actr、Bctr、Cctr,他们初始置于对应数组的开始端。A[Actr]和B[Bctr]中的较小者被拷贝到C的下一个位置,相关的计数器向前推进一步。当两个输入表有一个用完的时候,则将...
分类:
编程语言 时间:
2015-08-21 21:30:37
阅读次数:
233
在《数据结构与算法分析——C语言描述》的引论中有提到一个问题:
设有一组N个数而要确定其中第k个最大者。
被称为选择问题(selection problem)。
后面有提到两种算法,下面是我根据描述,写的代码:
/*
* 来源:《数据结构与算法分析》引论
* 题目:选择性问题,从N个数中找出第k大者
*
* */
#include
#include
/*
* 输出数组
*...
分类:
编程语言 时间:
2015-08-21 21:30:21
阅读次数:
152
题目来源:[hdu1874](http://acm.hdu.edu.cn/showproblem.php?pid=1874)
题目大意:
输入一个n,m,表示有n个城市,编号从1到n,有m条路,每条路输入连接的两个城市编号A,B,及路的长度X,题目说X表示从A到B的双向长度,故应建无向图。然后输入起点S与终点T,求从S到T得最短路径,若不存在,就输出-1。
题目分析:...
分类:
编程语言 时间:
2015-08-21 21:29:53
阅读次数:
159
#include
#include
using namespace std;
//数组右移m位,左边补0;
//如:1 2 3
// 4 5 6
// 7 8 9
//右移动2位的结果是:
// 0 0 1
// 0 0 4
// 0 0 7
void Grial(int(*a)[4], int n,int m)
{ fo...
分类:
编程语言 时间:
2015-08-21 21:29:22
阅读次数:
146