- 博客(61)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 c3p0连接池 加 dbutils
配置文件c3p0-config<?xml version="1.0" encoding="UTF-8" ?><c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property&
2018-04-28 10:10:51
251
原创 超详细的hexo+githhub page搭建过程
首先安装node.js在 Windows 环境下安装 Node.js 非常简单,仅须到官网下载安装文件并执行即可完成安装。像我的是Windows 64位,直接下载安装,无脑下一步就行了,不需要配置环境变量。安装git去Git官网根据你的电脑参数,下载对应版本。下载完成,通过在命令行输入 git version 查看是否安装成功,有输出版本号说明安装成功。鼠标邮件菜单里就多了Git GUI Here...
2018-04-16 19:26:14
5445
4
原创 暴力递归转动态规划详解
以一个题目为例:一排有N个位置,一个机器人在最开始停留在P位置上,如果P==0,下一分钟机器人一定向右移动到1位置,如果P=N-1,下一分钟机器人一定向左移动到N-2位置。如果P在0到N-1之间,下一分钟机器人一定会向左或向右移动,求K分钟时候,机器人到达T位置有多少种走法。思路:这里我们先用递归求解,然后再阐释暴力递归转动态规划的做法。递归:在K分钟是T位置上只能从K-1分钟的T
2017-08-24 12:08:35
2314
原创 逆序打印
题目:小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列小易需要你计算输出操作n次之后的b序列。思路:你若按照题目要求来回做折腾操作,是可以得到结果,倒是ac肯定超时,那么我们就要寻找规律,并且寻找适合的数据结构,规律就是交替的向前或向后插入数据,然后再看逆不逆序。
2017-08-24 10:31:30
645
原创 两个单链表相交的一系列问题
题目:在本题中,单链表可能有环,也可能无环。给定两个单链表的有节点head1和head2,这两个链表可能相交,也可能不相交。请实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null即可。思路:分别讨论,先判断是否有环,这里普及一个数学问题,用两个指针,一个快指针,一个慢指针同时从单链表头部开始遍历,一快一慢,若无环,肯定快指针先遍历到null,此时单链表无环,若单
2017-08-17 16:12:41
309
原创 最大值减去最小值小于等于num的子数组数量
题目:给定数组arr和整数num,共返回有多少个子数组满足如下情况:Max(arr[i..j])-min(arr[i..j])Max(arr[i..j])表示子数组arr[i..j]的最大值,min(arr[i..j])表示子数组arr[i..j]中的最小值。思路:大数组满足小数组也满足:定义两个指针维持一个动态窗口,一个在前一个在后,前指针右滑表示窗口内进数,后指针右滑表示窗口出
2017-08-17 15:02:40
1267
2
原创 数组中对打矩形区域为1的数量
题目:给定一个矩形矩阵map,其中的值只有0和1两种,求其中全是1的所有矩形区域中,最大的矩形区域为1的数量。例如:1 0 1 1 1 1 1 1 1 1 1 0其中,最大的矩形区域有6个1,所以返回6.思路:将问题的整个矩阵分成以每行为底的分问题,从上至下,先是以第一行为底,第一行是一个一维数组,这里还是要用到单调栈的概念,从数组开头开始扫
2017-08-17 11:46:07
487
原创 数组小和
题目: 数组小和的定义:例如,数组s=[1,3,5,2,4,6],在s[0]的左边小于等于s[0]的数的和为0,在s[1]的左边小于或等于s[1]的数和为1,在s[2]的左边小于等于s[2]的数和为1+3=4..一次类推s[3]—1,s[4]—1+3+2=6,s[5]—15,所以s的小和为0+1+4+1+6+15=27,给定一个数组,实现函数返回小和思路:这个大家都能想到暴
2017-08-11 21:53:23
1771
1
原创 数组中岛的个数
题目:给定一个二维数组,所有未知的值不是0就是1。规定每个位置可以和它上下左右位置上的值相连。有一个叫做岛的概念,定义如下:连成一片的一1,如果周围都是0,那么这一片1,构成一个岛,求整张图岛的个数例如:0, 0, 0, 0, 0,0, 0, 0, 0 0, 1, 1, 1, 0,1, 1, 1,
2017-08-11 18:43:09
307
原创 max(|leftmax-rightmax|)
题目:给定一个长度为N(N>1)的整形数组arr,可以划分成左右两个部分,做部分为arr[0..k],右部分为arr[k+1..N-1],k可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分的最大值的绝对值中,最大的是多少?例如:[2,7,3,1,1]当左边部分为[2,7],右部分为[3,1,1]时,左部分中最大值减去右部分最大值的绝对值为4,当左部分为[2,7
2017-08-10 22:10:00
556
原创 不相交最大子数组和
题目:给定一个数组,长度大于2。找出不相交的两个子数组,情况是很多的,请返回这么多情况中,两个不相交数组最大的和,例如:-1,3,4,-9,1,2当两个不相交子数组为[3,4]和[1,2]时,可以得到最大的和为10.思路:正如题目所述,情况很多,这里我要介绍一个概念——到当前位置的最大子数组和(这个一定要理解,这个能帮助我们过滤太多的情况了,使我们从考虑不同位置的组合所
2017-08-10 21:29:40
837
原创 柱状图储水问题
题目:给定一个数组,每个位置的值代表一个高度,那么整个数组可以看做是一个直方图,如果把这个直方图当作容器的话,求这个容器能装多少水例如:3,1,2,4代表第一个位置高度为3,第二个位置高度为1,以此类推,这个直方图能装3格水。如图红色地方:思路:很多人会误想到正出什么波峰波谷,这就从开始就错了,比如两个相邻的波峰之外还有更大的波峰,这么说来你中间这连个波峰波
2017-08-10 20:21:42
1097
原创 二维数组最大子矩阵和
题目:给定一个矩阵matrix,其中的值有正、负、0,返回子矩阵的最大累加和。例如,矩阵matrix为:-90 48 78 64 -40 64 -81 -7 66 其中,最大累加和的子矩阵为: 48 78-4 64 -7 66所以返回累加和209思路:此题先查分成一个求一维数组最大子数组和的题,那么后者则和容易求出来了:p
2017-08-10 19:25:15
1744
原创 八大排序算法java
本文只介绍算法实现的代码,默认都这一已经理解算法思想,若不理解可以参考八大排序算法思想 //交换两个数 public static void swap(int[] arr,int i,int j){ arr[i]=arr[i]^arr[j]; arr[j]=arr[i]^arr[j]; arr[i]=arr[i]^arr[j];
2017-07-27 18:31:03
262
原创 累加和小于等于给定值k的最长子数组
给定一个数组,值可以为正、负和0,请返回累加和为给定值k的最长子数组长度。思路:定义一个map,存放到当前位置的和(key)与位置(value)。 首先要明确,一个数sum能分成k和(sum-k),那么我们记录下到达(sum-k)的最早位置即map所存储的即是能到达每个值的最早位置,那么剩下的就是k了,也就是sum-k到sum,他们的下标差就是最长序列。p
2017-07-22 20:51:29
1110
2
原创 给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。
给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。public static int getMaxLength(int[] arr,int k){ if (arr == null || arr.length == 0) { return 0; } int left=0; int right
2017-07-22 19:38:02
665
原创 已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。
题目:已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。例子: 有效的括号组合:()(),(()),(()()) 无效的括号组合:(,()),((),()(()题目进阶: 已知一个字符串都是由左括号(和右括号)组成,返回最长有效括号子串的长度。第一问很简单,设置一个状态量,遇到"(" +1,遇到")
2017-07-22 18:58:03
3952
原创 删除链表中间节点
思路:经过我的归纳,链表每增加2,要删除的节点就向后移动一个public class Node { public int vaule; public Node next; public Node(int data){ vaule=data; }}public static Node removeMidNode(Node head){
2017-03-07 19:29:50
404
原创 删除单链表和双向链表倒数第k个节点
注释:当从链表第一个开始读,直到读到最后一个,让k不断地减一。k>0说明没什么可以删的,返回head即可,k=0,说明删头节点,k>0时,再从头开始读,k逐渐+1,直到k=0,那个便是要删除的前一个节点public class Node { public int vaule; public Node next; public Node(int data){
2017-03-07 19:18:28
516
原创 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
double Power(double base, int exponent) { long long p = abs((long long)exponent); double r = 1.0; while(p){ if(p & 1) r *= base; base *= base;
2016-10-18 18:58:25
312
原创 java编写计算器
/*缺点:计算根号时只能计算一个数的,不能再表达式里面计算 不能一个输入符号,"-"除外 正能处理部分错误输入 优点:键盘操作更爽啊, 可以用键盘输入部分功能 可以进行进制转换 文本框不可编辑,并且只接收数字和运算符
2015-12-12 16:04:09
560
原创 无向网的邻接矩阵表和邻接链表表示以及各自的深度优先搜索和广度优先搜索
#include #include#include#include#define MAX 20 //定义数组的最大值#define EXT 10000using namespace std;typedef struct UDN{ char vex[MAX]; //顶点
2015-12-08 13:44:15
966
原创 多项式加法,链表方法实现
#include #include using namespace std;typedef struct LNode{ int data,expn; struct LNode *next;}Node;Node *Create_List(int m){ Node *head,*tail,*pnew; int d,e; head=(Node *)m
2015-12-05 14:01:20
339
原创 链表中元素被访问的频度大的放在前面
#include #include using namespace std;typedef struct LNode{ int data,count; struct LNode *next;}Node;Node *Create_List(){ Node *head,*tail,*pnew; int number; head=(Node *)ma
2015-12-05 13:59:51
405
原创 删除链表中重复元素
#include #include using namespace std;typedef struct LNode{ int data; struct LNode *next;}Node;Node *Create_List();void Display_List(Node *head);void Delete_repeat_node(Node *head);
2015-12-05 13:57:32
245
原创 二叉树的的所有操作——转化为静态二叉链表,求深度,求先序排列,求中序排列,求后序排列,求层次遍历,求度为0.1.2的节点个数
#include#include#define N 20typedef struct node //节点创建{ char data; struct node *lchild,*rchild; int index;}BiTree;typedef struct tree
2015-12-05 13:55:34
939
原创 杭电1009
#include #include int main(){ int M,N; while(scanf("%d%d",&M,&N)!=EOF) { int i,j,J[1000],F[1000],temp1; double ratio[1000],JavaBeans=0,temp; if((M==-1)&&(N==-1)) { return 0; } for
2015-09-21 08:51:37
322
原创 杭电acm1008
#include using namespace std;int main(){ int a[100],n,s,i,j; while(cin>>n&&n!=0) { for(i=0;i<n;i++) cin>>a[i]; s=0; s+=(6*a[0]+5); for(j=1;j<
2015-09-21 08:38:18
714
原创 子序列的最大和
#includeusing namespace std;#includeusing namespace std;int main(){ int t,i,j,sum,a,n,l,r,max,z; cin>>t; for(i=0;i<t;i++) { cin>>n; for(z=l=0,r=0,sum=0,max=-1001,j=0;j<n;j++) { cin>>
2015-09-21 08:37:20
264
原创 员工管理系统
#include #include#include#includeusing namespace std;int N;struct worker{ char name[20],sex[3]; double salary; int age,id;}worker[100];void menu1();void menu2();void menu3();vo
2015-09-21 08:35:54
440
原创 找出指定单词在一句话中出现的次数
#includeint ste_d(char *a,char *b);int main(){ int sum,n; while(scanf("%d",&n)!=EOF) { while(n>0) { fflush(stdin); char a[100],b[10]="welcome";
2015-09-21 08:33:56
670
原创 讲一句话中的每个单词首字母大写
#include#includevoid main(){ char a[100]; int i,k=0; while(gets(a)!=NULL) { k=0; for(i=0;a[i]!='\0';i++) { if(k==0&&(a[i]122)) {
2015-09-21 08:32:28
1852
原创 一个偶数可以拆分成两个奇数
#include #includeusing namespace std;int sh(int a){ int flag=0; for(int k=2;k<=(int)sqrt(a);k++) { if(a%k==0) { flag=1; break; } }
2015-09-21 08:31:24
1166
原创 统计一句话中的单词数
#include#includevoid main(){ char str[1000]; int w,n,i,len; while(gets(str)!=NULL&&str[0]!='#') { len=strlen(str); n=0; w=0; for(i=0;i<len;i++)
2015-09-21 08:29:59
1033
转载 贪吃蛇
#include#include#include#include#include#define height 28//方块高度#define width 60//方块宽度 必须偶数//---------------------------------------------------------//函数声明void GameStart();//启动画面void GameO
2015-09-20 09:27:25
369
原创 输出正六边形
#includevoid printn(int n){ int i; for(i=0;i<n;i++) printf(" "); for(i=0;i<n;i++) printf("*"); printf("\n");}void printup(int n){ int m,j; for(m=1;m<n;m++)
2015-09-20 09:26:11
1150
原创 输出数组中出现次数最多的元素
#includeint main(){int n,temp;int i,j;int a[20];int b[20]={0};while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(a[i]==a[j])b[i]+=1;}
2015-09-20 09:25:03
1159
原创 输出菱形
#includeusing namespace std;int main(){ int i,j,k,n; while(cin>>n) { for(i=0;i<n;i++) { if(n>2*i+1) k=2*i+1; else
2015-09-20 09:23:27
262
原创 日期加N天的实现
#include using namespace std;class CDate{private: int year; int month; int day;public: int IsLeapYear(int y) { if((year%400==0)||(year%100!=0&&year%4==0))
2015-09-20 09:21:41
569
原创 求最大公约数和最小公倍数
#include#includevoid main(){ int m,n,a,b,t; scanf("%d%d",&a,&b); a=fabs(a); b=fabs(b); m=a; n=b; while(b>0) { t=a%b; a=b; b=t; } t=m*
2015-09-20 09:20:09
264
war部署到tomcat上后不能访问?
2017-04-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人