自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奔跑的小河

千里之行,始于足下。

  • 博客(111)
  • 资源 (14)
  • 问答 (1)
  • 收藏
  • 关注

原创 【算法】Fibonacci解法总结

我这里说的Fibonacci数列不仅仅是f(n-1) + f(n-2)的情况,也可以是f(n-1) + f(n-2) + … + f(n-k)的情况。但是这里我们用f(n-1) + f(n-2)来进行讨论,简化理解,举一反三。解法一,递归实现非常简单。int fibonacci(int i){ if(i==0){ return 0; }else if(i==1){

2015-10-30 13:10:40 906

原创 【动态规划】最小硬币面值组合

问题给出硬币种类,及要组合的sum,求用最少的硬币数目到达sum。 如:硬币种类1,5,8 sum为20,则最少的硬币数目为5555。解析动态规划解法: dp[i]表示用N种硬币组合成i大小的最少硬币数目。 状态转移方程: dp[i] = min{dp[i-arr[j]] + 1 | 0<=j<=arr_len && arr[j]<=i , dp[i]}. dp[0] = 0;实现mems

2015-10-30 12:55:12 2500

原创 【动态规划】硬币面值组合(上台阶)

问题1分2分5分的硬币三种,组合成1角,共有多少种组合?有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,有多少中组合可以组成n分钱?一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法? 问法不一样,但是本质一样!解析实现总结

2015-10-30 12:41:18 8212 4

原创 【动态规划】完全背包、多重背包

完全背包问题解析实现多重背包问题解析实现

2015-10-30 00:17:49 673

原创 【动态规划】交错重排

问题两个字符串,不改变原顺序,能否组成目标字符串。 eg: str1:ABC str2:123 aim:A12BC3、123ABC、1A2B3C、………解法动态规划解: dp[i][j]表示str1[0…i-1]和str2[0…j-1]能否组成aim[0…i+j-1]长度的字符串. 状态转移方程: dp[0][j] = str2[0…j] == aim[0…j] ? 1:0 dp[i

2015-10-29 21:06:31 475

原创 【动态规划】求二维数组走法路径种数

问题给定二维数组,从左上走到右下的走法种树,数组中1代表该格可以走,0代表不能走。且只能向下和向右走。解法典型的动态规划问题:dp[i][j]表示从[0][0]到[i][j]的走法数量。状态转移方程:dp[0][j] = 1 where i = 0dp[i][0] = 1 where j = 0dp[i][j] = dp[i-1][j] + dp[i][j-1] where arr[i]

2015-10-29 20:51:36 4313

原创 【结构之法】二叉树中节点的最大距离

前言:编程之美中的解法并不是最好的,所以这里给出大神的解法。问题:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义”距离”为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。 思路计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节点,通过根节点,再到右子树的最深节点。 情况B: 路径不穿过根节点,而是左子树或右子树的最大距离路径,

2015-10-16 12:49:39 603

原创 【算法】求n的m次方(快速幂取模)

题目求n的m次方,n,m均为自然数。解析看似简单的题目,但是要想写的高效还不是那么容易想出来。实现unsigned int power(unsigned int a, unsigned int n){ unsigned int i, s; if (!n) return 1; if(!a) return 0; i=n;s=a; while (i>>=1)//每

2015-10-14 22:49:32 8952 4

原创 【算法】九大排序算法总结

九大排序算法这里我不采用数组来进行排序,而是采用更加符合应用的数据结构来排序。这是一种简单描述,更加详细的数据机构应该是下面这样(但是为了方便描述还是使用上面的简单结构):

2015-10-12 12:07:47 719

原创 【数字之魅】寻找最大的K个数(求第k大的数)

前言:编程之美上并没有给出实际的代码,这里我参考yoona博主的做法自己也写了一遍,并记录下来。 与此相似的题目是: - 求第k大的数 - 求第k小的数 这里给出比较好的两个做法,分别是快排思想和堆思想。快排思想解堆思想解

2015-10-12 11:53:16 1721

原创 【算法】判断二叉树是否是平衡二叉树

某个节点的左右子树相差不超过1

2015-10-11 15:59:20 667

原创 【动态规划】0-1背包问题

一、问题有N件物品和一个容量(最大承重)为V的背包。第i件物品的体积(重量)是w[i],价值是p[i]。求解将哪些物品装入背包可使价值总和最大。 所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。二、分析0-1背包属于求最优解,当然用动态规划解决,当然也可以用其他方法解决。这里介绍动态规划方法。 阶段是:在前N件物品中,选取若干件物品放入背包中; 状态是:在前N件物品中,选取若干件物

2015-10-08 23:42:37 707

原创 【动态规划】最长递增子序列

题目:求一个无序数组中最长的递增子序列。例如: 1,3,2,5,4,6的最长递增子序列的长度是4。12446和1346。解析:直接给出动态规划的解,dp[i]表示以arr[i]结尾的最长递增子序列的长度。dp[0] = 1dp[i] = max{dp[0]...dp[i-1]} where arr[i] > arr[0...i-1] 代码:

2015-10-04 21:07:50 591

原创 【动态规划】求最长公共子串,最长回文子串

题目 : 给定两个字符串,求出它们之间连续的最长的相同子字符串的长度。 eg : fbaabe,ebaabf,连续最长子串长度为4。注意:求最长回文子串也可以用求最长公共子串来求,只需将字符串反转作为另外一个字符串,回文部分反转之后不变,然后求LCS(Longest common substring)即可。求最长公共子串通常两种方法:第一暴力,第二,动态规划。这里分别给出。1. ...

2015-09-30 20:46:54 713

原创 【动态规划】求最长公共子序列

最长公共子串和最长公共子序列的区别: 最长公共子串和最长公共子序列的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是说,子串中字符的位置必须是连续的,子序列则可以不必连续。题目:求两个字符串中的最长公共子序列。 比如: string s1 = “ABCBDAB”; string s2 = “BDCABA”;它们的lcs是:BCB

2015-09-30 20:45:43 739

原创 【动态规划】求一维子数组的最大和

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如,输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 思路:设sum[i]为以第i个元素结尾且和最大的连续子数组。假设对于元素i,所有以...

2015-09-30 20:43:39 1482

原创 【动态规划】求二维数组从左下到右上的最优路径

1.求二维数组从左下到右上的最优路径,使得路径和最大,并且只能向上或向下走。 解析:求最短路径,路径和最优等都可以用动态规划做。 dp[i][j]表示到i,j坐标的最优路径。 第一,确定初始条件。即向上向左的最优路径确定 dp[i,0] = dp[i-1,0] + arr[i][0] where j =0 dp[0,j] = dp[0,j-1] + arr[0][j] where i =

2015-09-30 20:41:58 4940

原创 说说我对写技术博客的感受

前言其实在读大学时就开始想写技术博客,可是一直都没有开始,就在今年的一个偶然的想法,就陆陆续续开始写自己的博客,后来基本就成为一种习惯,当每遇到或学习了一种 新的技术或知识,第一想法就是整理到自己的博客里去,而以前总是喜欢拿个txt或者word总结整理出来。写到txt或word中一个非常不好的就是每次要重新复习一下以前的知识的时候总是要花费很多时间去找在哪里哪里。后来又想把所有的知识都放到chm中这

2015-07-20 18:12:51 847 1

原创 常用文本操作命令

常用文件操作命令tr,cut,uniq,nl,shuf,split,sed等等。

2017-05-23 20:22:25 903

原创 记一次22亿大数据分析处理踩坑实践

1. hive脚本相关操作2. mysql数据插入,批量插入脚本的使用,及其中我遇到的一些坑.3. 脚本处理数据的一些操作(遍历目录下的每一个文件, 遍历文件的每一行,获取每一行中的每一列,记录shell线程,执行时间,函数传参和返回值)4. 理解做事情的思路是多么的重要.5. 这是一次xxx的经历.

2017-04-17 17:34:17 807

原创 记一次蛋疼的mongo to hive导数过程

mongo导出数据到mysql,mysql导出数据到hive,mongo脚本

2017-04-17 17:27:40 1792

原创 shell,bash操作快捷键

前言: 在命令行或者bash中编辑命令的时候,了解一些基本的快捷键,和编辑技巧,会让你效率更高,节约更多的时间。

2017-03-06 15:53:43 874

原创 Java Object你真的了解了吗

在平时的coding中hashCode()和equals()的使用的场景有哪些?clone深复制怎么实现?wait()和notify()有什么作用?finalize()方法干嘛的?看似coding中使用的不多,不重要,但是有没有跟我一样,想好好的了解一下的。毕竟是基础中的基础。

2017-03-06 15:37:09 413

原创 cheat安装使用

## 安装1.sudo apt-get install python 如果已经安装了python则不用安装.2.sudo apt-get install python-pip3. sudo pip install docopt pygments4. sudo pip install cheatOK, 安装完毕.cheat -v查看版本吧另外也可以在github上clone下来, 用python s

2016-12-23 15:35:42 2118

原创 删除Ubuntu分区后恢复

由于一次手误,在Windows中把Ubuntu的系统分区和swap分区删除了,导致不能进系统。开机直接error no such partition和grub rescue mode。下面讲述一下系统恢复过程!

2016-12-23 15:22:57 5393

原创 web.xml入门讲解

要点元素都放在<web-app></web-app>之中大小写敏感、元素顺序敏感web.xml中不仅对大小写敏感,而且对元素出现的顺序也敏感,顺序如图:Servlet的访问路径名称和<servlet>标签和<servlet-mapping>的名称必须是相同原理1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。

2016-04-11 21:36:29 532

原创 比比Java和C#语言运行的快慢

前言:闲来无事,在图书馆随便看看书,发现不论是在论坛还是写书的作者都喜欢将Java和C#拿来比较一番。谈论语言的是非。所以我决定,从语言的运行快慢来比较一下究竟哪种语言快些。

2016-01-03 00:17:56 9770

原创 基于auto_ptr源码的智能指针实现

智能指针某些情况下能够避免内存泄露,这里我做了一次重复制造轮子,目的是为了深入理解智能指针的实现原理。这里只实现了auto_point,根据原理我们不难推出其他智能指针的实现方式。

2015-12-29 16:19:57 524

原创 面试笔试细节汇总

这里记录我们面试笔试过程中遇到的一些不懂或模棱两可的题目。

2015-12-29 15:55:00 842

原创 String系列——空间配置器

根据STL源码剖析中的配置器原理,自己整理,并按照自己的理解进行了讲述。

2015-12-05 19:25:40 500

原创 二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比

前言:BST、AVL、RBT、B-tree都是动态结构,查找时间基本都在O(longN)数量级上。下面做出详细对比。1. 二叉查找树 (Binary Search Tree)概念二叉查找树又称二叉搜索树,二叉排序树,特点如下: 1. 左子树上所有结点值均小于根结点 2. 右子树上所有结点值均大于根结点 3. 结点的左右子树本身又是一颗二叉查找树 4. 二叉查找树中序遍...

2015-10-12 20:43:16 25319 4

原创 【STL源码剖析】Sort算法

前言:sort算法必须拿出来单独将,因为它是STL所有算法中最复杂最庞大的一个,就像我肯定会把copy算法单独列出来一样,这两个算法太重要了。提示:STL算法特点是,前两个形参变量都是迭代器指针。并且每个算法都有两个版本,一个是默认版本,另外一个是提供仿函数的版本。介绍:sort算法接收两个随机存取迭代器(RandomAccessIterators),所以像list这种BidirectionaIt

2015-10-09 16:16:24 672

原创 动态规划概念

一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那

2015-09-30 20:29:23 529

原创 C++实现LRU(最久未使用)缓存算法

LRU缓存算法也叫LRU页面置换算法,是一种经典常用的页面置换算法,本文将用C++实现一个LRU算法。LRU算法实现并不难,但是要高效地实现却是有难度的,要想高效实现其中的插入、删除、查找,第一想法就是红黑树,但是红黑树也是一种折中的办法。插入、删除效率最高当属链表,查找效率当属hash。所以,这里我们就将链表和hash结合起来,利用空间换时间的思想,实现LRU算法。LRU具体概念就不列出了,本文的目的是进一步了解LRU算法和学习高效的编程方法。

2015-09-11 16:21:26 11864 5

原创 学习STL,实现一个单链表的迭代器

STL源码剖析中,空间配置器和迭代器属于比较晦涩难懂的两章,这里学习了STL迭代器后也尝试自己写一个迭代器,实现单链表的迭代器,实现不难,可以说是一个玩具而已,但是能够帮助我们理解STL迭代器的基本原理。1.节点Node和单链表的定义LinkList//声明templateclass ListIterator;templateclass LinkList;//链表节点temp

2015-09-10 10:38:00 2009

原创 C/C++易错难点笔记03

在做C++各类题目的过程中,有很多题目看似,却有点难(对于我来说~~),所以我将这些题目积累慢慢积累下来,并记录。

2015-09-08 21:47:14 975

原创 数据结构——二叉树的层次遍历

二叉树的层次遍历说简单也简单,说难也难。下面是我读编程之美和研究数据结构结合大神的博客来实现的二叉树的层次遍历,这里只给出三种简单高效的解法。

2015-09-08 20:22:29 1724

原创 C/C++易错难点笔记01

C++是一门神奇的语言,很多时候你对底层不熟悉,很难知道某些情况下的结果,下面是我不断积累的疑惑点,这里将其记录下来。

2015-08-21 20:20:17 791

原创 C/C++易错难点笔记02

C++有很多基础但是,又容易出错的地方,也有很多我们 没有关注的地方,这里慢慢总结积累,记录下来。

2015-08-21 17:06:21 789

原创 【STL源码剖析】令人困惑的语法

困惑的语法obj * volatile * my_free_list的含义这个声明原来的形式是:obj** my_free_list,这样的话*my_free_list(空闲的内存块指针数组中的一个元素)可能被优化到寄存器中,从而使库代码无法lock住对它的读调用(如果在寄存器中则另一个线程可能会无意中修改该寄存器的值,而在内存中由于另一个线程没有访问权力所以不能修改)。 要声明变量必须在

2015-08-02 20:03:32 1175

DOM、SAX、JDOM、DOM4J读写xml文档

总结DOM、SAX、JDOM、DOM4J读写xml文档的多种方法。

2015-12-04

字符和整型的转换实例

string,Cstring,char*,int,long,float,double等类型之间的相互转换总结,包含了所有的转换方法。

2015-06-08

C++标准程序库pdf+参考手册chm

又没有每次查STL很烦的时候,这里提供chm和pdf组合,让你能够很轻松地查看库函数的使用。

2015-06-07

TheC++ Standard Library.chm

C++标准库的查看文档。chm文件,个人觉得很好用,分享之。

2015-06-07

调用百度API程序实例

这是我做的一个调用百度API的实例,写的过程中比较注重通用性,代码中有我自己的业务需求,所以拿来用需要修改里面某地方。可以大大减少您的工作量吧。

2015-06-05

C++类库开发详解

这是一个对C++类库开发的详细、完整的介绍,并附带源码,文档结合源码进行介绍,通过阅读相信都能进行一般的类库开发。

2015-05-25

VAssistX助手

这是我在几个VAssistX中找的比较好的版本,附带安装教程。

2015-04-10

zend-keymaker

这是zendstudio 11.0.2版本的注册机,安装完成后,在填写注册码的时候运行注册机。不会用注册机的朋友,可以百度下,有教程的。

2014-11-12

com.zend.verifier_11.0.2.v20140926-0202.jar

破解办法 1.安装完成,进入选择试用然后点退出。 2.将com.zend.verifier_11.0.2.v20140926-0202.jar复制到安装目录的plugins下替换。

2014-11-12

H3Viewer帮助文档查看器

一个很好的MSDN帮助文档查看器,里面可以采用读的方式看文档,减去眼睛压力,是行内首推的帮助文档查看器。

2014-07-26

俄罗斯方块

俄罗斯方块是我的一个业余开发的。代码全部手写,并附有详细的中文注释,是课程设计和开发入门的好资源。这个小游戏写了很久,但是还有很多想法没有实现,希望有兴趣接着帮我实现。一起交流。

2014-07-26

css参考手册

无私分享一下 css参考手册。新手可以下载下来记忆,对照着用哟。

2013-08-13

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

TA关注的人

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