5 grave2015

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 9w+

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

超详细的hexo+githhub page搭建过程

首先安装node.js在 Windows 环境下安装 Node.js 非常简单,仅须到官网下载安装文件并执行即可完成安装。像我的是Windows 64位,直接下载安装,无脑下一步就行了,不需要配置环境变量。安装git去Git官网根据你的电脑参数,下载对应版本。下载完成,通过在命令行输入 git version 查看是否安装成功,有输出版本号说明安装成功。鼠标邮件菜单里就多了Git GUI Here...

2018-04-16 19:26:14

暴力递归转动态规划详解

以一个题目为例:一排有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

逆序打印

题目:小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列小易需要你计算输出操作n次之后的b序列。思路:你若按照题目要求来回做折腾操作,是可以得到结果,倒是ac肯定超时,那么我们就要寻找规律,并且寻找适合的数据结构,规律就是交替的向前或向后插入数据,然后再看逆不逆序。

2017-08-24 10:31:30

两个单链表相交的一系列问题

题目:在本题中,单链表可能有环,也可能无环。给定两个单链表的有节点head1和head2,这两个链表可能相交,也可能不相交。请实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null即可。思路:分别讨论,先判断是否有环,这里普及一个数学问题,用两个指针,一个快指针,一个慢指针同时从单链表头部开始遍历,一快一慢,若无环,肯定快指针先遍历到null,此时单链表无环,若单

2017-08-17 16:12:41

最大值减去最小值小于等于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

数组中对打矩形区域为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

数组小和

题目:       数组小和的定义:例如,数组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

数组中岛的个数

题目:给定一个二维数组,所有未知的值不是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

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

不相交最大子数组和

题目:给定一个数组,长度大于2。找出不相交的两个子数组,情况是很多的,请返回这么多情况中,两个不相交数组最大的和,例如:-1,3,4,-9,1,2当两个不相交子数组为[3,4]和[1,2]时,可以得到最大的和为10.思路:正如题目所述,情况很多,这里我要介绍一个概念——到当前位置的最大子数组和(这个一定要理解,这个能帮助我们过滤太多的情况了,使我们从考虑不同位置的组合所

2017-08-10 21:29:40

柱状图储水问题

题目:给定一个数组,每个位置的值代表一个高度,那么整个数组可以看做是一个直方图,如果把这个直方图当作容器的话,求这个容器能装多少水例如:3,1,2,4代表第一个位置高度为3,第二个位置高度为1,以此类推,这个直方图能装3格水。如图红色地方:思路:很多人会误想到正出什么波峰波谷,这就从开始就错了,比如两个相邻的波峰之外还有更大的波峰,这么说来你中间这连个波峰波

2017-08-10 20:21:42

二维数组最大子矩阵和

题目:给定一个矩阵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

八大排序算法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

累加和小于等于给定值k的最长子数组

给定一个数组,值可以为正、负和0,请返回累加和为给定值k的最长子数组长度。思路:定义一个map,存放到当前位置的和(key)与位置(value)。              首先要明确,一个数sum能分成k和(sum-k),那么我们记录下到达(sum-k)的最早位置即map所存储的即是能到达每个值的最早位置,那么剩下的就是k了,也就是sum-k到sum,他们的下标差就是最长序列。p

2017-07-22 20:51:29

给定一个数组,值全是正数,请返回累加和为给定值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

已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。

题目:已知一个字符串都是由左括号(和右括号)组成,判断该字符串是否是有效的括号组合。例子:      有效的括号组合:()(),(()),(()())      无效的括号组合:(,()),((),()(()题目进阶:     已知一个字符串都是由左括号(和右括号)组成,返回最长有效括号子串的长度。第一问很简单,设置一个状态量,遇到"(" +1,遇到")

2017-07-22 18:58:03

删除链表中间节点

思路:经过我的归纳,链表每增加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

删除单链表和双向链表倒数第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

给定一个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

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!