自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Mysql报错!Communications link failure due to underlying exception

最近的一个项目在使用C3P0的连接池,数据库为MySQL。开发测试没有问题,之前运行也没有问题,因为取消了一个5分钟执行一次的sql,隔天执行某个sql的时候报错了,但是第二个sql又好使。(突然想起来,前几天面试还有面试官问过我这个问题,当时没答上。com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communication

2016-11-02 09:52:42 449

转载 装饰模式和代理模式的区别

学习AOP时,教材上面都说使用的是动态代理,可是在印象中代理模式一直都是控制访问什么的,怎么又动态增加行为了,动态增加行为不是装饰器模式吗?于是 找了很多资料,想弄清楚这两者之间到底有什么区别。结果发现这一篇英文文章讲的很清晰,就翻译一下,供参考。               首先,让我们先看一下下面的这两个UML类图,他们分别描述了装饰器模式和代理模式的基本实现。

2016-08-16 15:53:22 940 1

转载 解决eclipse中git插件中的cannot open git-upload-pack问题

今天用eclipse突然git无法上传代码提示cannot open git-upload-pack,就去查了一下,顺便记录一下。打开eclipse中的windows-->Preferences-->Team-->Git-->Configuration-->User Settings.然后点Add Entry新建一个键值对,输入http.sslVerify=false。如图所示

2016-06-17 19:13:05 2651

原创 剑指offer第三十六题【平衡二叉树】c++实现

平衡二叉树参与人数:1452时间限制:1秒空间限制:32768K通过比例:32.06%最佳记录:0 ms|8552K(来自  水星哥) 算法知识视频讲解题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。平衡二叉树的定义是 左右两子树的高度差不能搞超过1所以这题就是比较左右子树的高度差,和求整个树高类似,直接递归/*struct TreeNode {

2015-12-17 16:43:07 440

原创 剑指offer第三十五题【二叉树的深度】c++实现

二叉树的深度参与人数:1837时间限制:1秒空间限制:32768K通过比例:38.54%最佳记录:0 ms|8552K(来自  Double_S) 算法知识视频讲解题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归做很简单/*struct TreeNode { i

2015-12-17 16:22:28 391

原创 剑指offer第三十四题【数字在排序数组中出现的次数】c++实现

数字在排序数组中出现的次数参与人数:1541时间限制:1秒空间限制:32768K通过比例:28.25%最佳记录:0 ms|8552K(来自  不可言丶) 算法知识视频讲解题目描述统计一个数字在排序数组中出现的次数。方法很多,最高效的是用二分查找上下界,结果就是上届减下届加一class Solution {public: int GetNumberO

2015-12-17 16:10:30 362

原创 剑指offer第三十三题【两个链表的第一个公共结点】c++实现

两个链表的第一个公共结点参与人数:1581时间限制:1秒空间限制:32768K通过比例:30.88%最佳记录:0 ms|8552K(来自  bigsnail) 算法知识视频讲解题目描述输入两个链表,找出它们的第一个公共结点。两个链表有公共节点会形成一个Y形。所以只需要先查出每个链表的长度,然后让长的链表走长度差个节点,最后依次比较两个链表的节点是否相

2015-12-17 16:04:56 341

原创 剑指offer第三十二题【把数组排成最小的数】c++实现

把数组排成最小的数参与人数:1233时间限制:1秒空间限制:32768K通过比例:20.53%最佳记录:0 ms|8552K(来自  啊哈哈) 算法知识视频讲解题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。这道题其实就是一道排

2015-11-18 11:37:37 775

原创 剑指offer第三十一题【整数中1出现的次数(从1到n整数中1出现的次数)】c++实现

整数中1出现的次数(从1到n整数中1出现的次数)参与人数:1779时间限制:1秒空间限制:32768K通过比例:24.07%最佳记录:0 ms|8552K(来自  啊哈哈) 算法知识视频讲解题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于

2015-11-18 10:03:23 439

原创 剑指offer第三十题【连续子数组的最大和】c++实现

连续子数组的最大和参与人数:1704时间限制:1秒空间限制:32768K通过比例:29.30%最佳记录:0 ms|8552K(来自  tony99)题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包

2015-10-25 10:37:00 1001

原创 剑指offer第二十九题【最小的K个数】c++实现

最小的K个数参与人数:1734时间限制:1秒空间限制:32768K通过比例:17.07%最佳记录:0 ms|3156K(来自  Pypanda)题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。方法比较多,我直接用的set,然后取前k个就行了vector GetLeastNumb

2015-10-24 18:44:05 445

原创 剑指offer第二十八题【数组中出现次数超过一半的数字】c++实现

数组中出现次数超过一半的数字参与人数:1910时间限制:1秒空间限制:32768K通过比例:20.40%最佳记录:0 ms|8552K(来自  牛客655987号)题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不

2015-10-23 17:16:46 464

原创 剑指offer第二十七题【字符串的排列】c++实现

字符串的排列参与人数:1368时间限制:1秒空间限制:32768K通过比例:15.08%最佳记录:0 ms|8552K(来自  牛客482459号)题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 输入

2015-10-23 16:36:30 519

原创 剑指offer第二十六题【二叉搜索树与双向链表】c++实现

二叉搜索树与双向链表参与人数:1237时间限制:1秒空间限制:32768K通过比例:24.74%最佳记录:0 ms|8552K(来自  牛客456244号)题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。主要思路:中序遍历,遍历的顺序就是,数值从小到大用一个指针指向,当前指针的前一

2015-10-21 15:35:33 610

原创 剑指offer第二十五题【复杂链表的复制】c++实现

复杂链表的复制参与人数:1297时间限制:1秒空间限制:32768K通过比例:17.22%最佳记录:0 ms|8552K(来自  LuLu1990)题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。将复制后的节点插入在原节点后面然后就有node->random=old->random->next

2015-10-20 12:16:43 614

原创 剑指offer第二十四题【二叉树中和为某一值的路径】c++实现

二叉树中和为某一值的路径参与人数:1505时间限制:1秒空间限制:32768K通过比例:21.37%最佳记录:0 ms|3156K(来自  风痕)题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。先序遍历二叉树,用一个数组记录当前路径,如果遍历到叶子节点就进行判断是

2015-10-20 10:32:30 942

原创 剑指offer第二十三题【二叉搜索树的后序遍历序列】c++实现

二叉搜索树的后序遍历序列参与人数:1784时间限制:1秒空间限制:32768K通过比例:20.62%最佳记录:0 ms|8552K(来自  牛客456244号)题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。后序遍历最后一个是根节点,往前找第一个比根节点小的

2015-10-18 22:15:14 333

原创 剑指offer第二十二题【从上往下打印二叉树】c++实现

从上往下打印二叉树参与人数:2132时间限制:1秒空间限制:32768K通过比例:24.75%最佳记录:0 ms|8552K(来自  。着…)题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。这道题就是层序遍历,我用的队列。vector PrintFromTopToBottom(TreeNode *root) { queue que;

2015-10-18 22:12:06 308

原创 剑指offer第二十一题【栈的压入、弹出序列】c++实现

栈的压入、弹出序列参与人数:1958时间限制:1秒空间限制:32768K通过比例:22.25%最佳记录:0 ms|8552K(来自  geeek)题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但

2015-10-18 16:55:54 892

原创 剑指offer第二十题【包含min函数的栈】c++实现

包含min函数的栈参与人数:2005时间限制:1秒空间限制:32768K通过比例:31.12%最佳记录:0 ms|8552K(来自  Lying从来不说谎)题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。这个也是没什么说的用链表根据栈的原理事先就好,min函数遍历链表就好。class Solution {public:

2015-10-18 15:48:59 900

原创 剑指offer第十九题【顺时针打印矩阵】c++实现

顺时针打印矩阵参与人数:1858时间限制:1秒空间限制:32768K通过比例:15.43%最佳记录:0 ms|8552K(来自  董尼玛)题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,1

2015-10-18 11:23:02 487

原创 剑指offer第十八题【二叉树的镜像】c++实现

二叉树的镜像参与人数:2536时间限制:1秒空间限制:32768K通过比例:29.31%最佳记录:0 ms|8552K(来自  ccnew)题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5

2015-10-18 08:15:43 385

原创 剑指offer第十七题【树的子结构】c++实现

树的子结构参与人数:2193时间限制:1秒空间限制:32768K通过比例:17.43%最佳记录:0 ms|8552K(来自  董尼玛)题目描述输入两颗二叉树A,B,判断B是不是A的子结构。只要A抽出来一部分和B的值完全相等就行了。依次搜过各个结点,先看父节点,再看左右子节点。bool isSubtree(TreeNode* Tree,TreeNode *

2015-10-17 22:21:06 370

原创 剑指offer第十六题【合并两个排序的链表】c++实现

合并两个排序的链表参与人数:2725时间限制:1秒空间限制:32768K通过比例:24.54%最佳记录:0 ms|8552K(来自  大工zay)题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。新建一个链表然后遍历两个链表。ListNode* Merge(ListNode* pHead1, ListNode

2015-10-16 19:12:32 296

原创 剑指offer第十五题【反转链表】c++实现

反转链表参与人数:3159时间限制:1秒空间限制:32768K通过比例:25.17%最佳记录:0 ms|3156K(来自  童飞帆)题目描述输入一个链表,反转链表后,输出链表的所有元素。用栈存一下在取出,把最后一个节点指向空ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL){

2015-10-16 17:59:04 289

原创 剑指offer第十四题【链表中倒数第k个结点】c++实现

链表中倒数第k个结点参与人数:2991时间限制:1秒空间限制:32768K通过比例:19.65%最佳记录:0 ms|8552K(来自  ccnew)题目描述输入一个链表,输出该链表中倒数第k个结点。

2015-10-16 11:22:35 229

原创 剑指offer第十三题【调整数组顺序使奇数位于偶数前面】c++实现

调整数组顺序使奇数位于偶数前面参与人数:3582时间限制:1秒空间限制:32768K通过比例:17.78%最佳记录:0 ms|8552K(来自  ccnew)题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解法比较多,可以可以把偶数

2015-10-16 10:39:40 522

原创 剑指offer第十二题【数值的整数次方】c++实现

数值的整数次方参与人数:2920时间限制:1秒空间限制:32768K通过比例:25.37%最佳记录:0 ms|8552K(来自  ccnew)题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。这道题指数不会大,直接for循环也能做,但我习惯性用快速幂去做本题就是指数可能为负的,取倒数就可以了

2015-10-15 08:11:34 305

原创 剑指offer第十一题【二进制中1的个数】c++实现

二进制中1的个数参与人数:3696时间限制:1秒空间限制:32768K通过比例:32.22%最佳记录:0 ms|8552K(来自  me_wm)题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。这个题没有什么难度,正数就一直和1做与运算为1就计数,没什么说的。主要是负数,我这里直接强制转换为unsigned int 然后在计算就和整正数

2015-10-14 23:03:42 386

原创 剑指offer第十题【矩形覆盖】c++实现

矩形覆盖参与人数:3883时间限制:1秒空间限制:32768K通过比例:31.53%最佳记录:0 ms|8552K(来自  牛客946562号)题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?这道题主要是分析,逆着推。加最后一块可以直接竖着放,或者和前一块一起

2015-10-14 22:34:14 974

原创 剑指offer第九题【变态跳台阶】c++实现

变态跳台阶参与人数:4749时间限制:1秒空间限制:32768K通过比例:35.99%最佳记录:0 ms|0K(来自  Wocao)题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这个题改成了可以跳任意阶,所以本阶跳法就是架上之前所有阶梯的跳法再+1(直接跳n)。f(n)=s(n)+1

2015-10-14 17:39:25 488

原创 剑指offer第八题【跳台阶】c++实现

跳台阶参与人数:6380时间限制:1秒空间限制:32768K通过比例:28.82%最佳记录:0 ms|0K(来自  牛客164435号)题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这题其实和斐波那契数列一样。第n阶台阶可以由第n-1阶台阶跳一步或者第n-2阶台阶跳两步所以有公式f(n)=f(n-1)+

2015-10-14 13:07:50 371

原创 剑指offer第七题【斐波那契数列】c++实现

斐波那契数列参与人数:3934时间限制:1秒空间限制:32768K通过比例:24.01%最佳记录:0 ms|0K(来自  不可言丶)题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。这个题没什么讲的斐波那契数列 1 1 2 3 5 8 13 21 34……后一个数是前两个数的和,方法很多,别用递归就好,n大就会超内存。

2015-10-14 12:54:19 367

原创 剑指offer第六题【旋转数组的最小数字】c++实现

旋转数组的最小数字参与人数:3258时间限制:1秒空间限制:32768K通过比例:14.10%最佳记录:0 ms|0K(来自  Wocao)题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。本题给的也

2015-10-14 11:30:19 1307

原创 剑指offer第五题【用两个栈实现队列】c++实现

用两个栈实现队列参与人数:3531时间限制:1秒空间限制:32768K通过比例:34.83%最佳记录:0 ms|0K(来自  William_Meng)题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。这个题解法应该比较多我是

2015-10-13 18:11:38 1084

原创 剑指offer第四题【重建二叉树】c++实现

重建二叉树参与人数:2850时间限制:1秒空间限制:32768K通过比例:18.31%最佳记录:0 ms|0K(来自  LaZZy)题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二

2015-10-13 17:38:22 525

原创 剑指offer第三题【从尾到头打印链表】c++实现

从尾到头打印链表参与人数:4903时间限制:1秒空间限制:32768K通过比例:16.29%最佳记录:0 ms|0K(来自  William_Meng)题目描述输入一个链表,从尾到头打印链表每个节点的值。这个把链表存到栈里,然后再输出就可以了vector printListFromTailToHead(struct ListNode* head)

2015-10-13 17:32:05 247

原创 剑指offer第二题【替换空格】c++实现

替换空格参与人数:5934时间限制:1秒空间限制:32768K通过比例:16.45%最佳记录:0 ms|0K(来自  lixiao123)题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这个题没什么说的 void replaceSpa

2015-10-13 17:20:50 360

原创 剑指offer第一题【二维数组中的查找】c++实现

二维数组中的查找参与人数:6321时间限制:1秒空间限制:32768K通过比例:17.00%最佳记录:0 ms|0K(来自  lixiao123)题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。这道题可以从两个地方搜索,右上角或者

2015-10-13 16:31:03 617

转载 字符串匹配KMP算法

KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,主要原因是KMP算法在构造跳转表next过程中进行了多个层面的优化和抽象,使得KMP算法进行模式匹配的原理显得不那么直白。本文希望能够

2015-03-21 11:09:47 257

空空如也

空空如也

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

TA关注的人

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