奔跑的小河

千里之行,始于足下。

排序:
默认
按更新时间
按访问量

【算法】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){ ...

2015-10-30 13:10:40

阅读数:318

评论数:0

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

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

2015-10-30 12:55:12

阅读数:1209

评论数:0

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

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

2015-10-30 12:41:18

阅读数:2321

评论数:0

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

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

2015-10-30 00:17:49

阅读数:435

评论数:0

【动态规划】交错重排

问题两个字符串,不改变原顺序,能否组成目标字符串。 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]长度的字符串. 状...

2015-10-29 21:06:31

阅读数:268

评论数:0

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

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

2015-10-29 20:51:36

阅读数:1738

评论数:0

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

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

2015-10-16 12:49:39

阅读数:374

评论数:0

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

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

2015-10-14 22:49:32

阅读数:2339

评论数:2

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

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

2015-10-12 12:07:47

阅读数:471

评论数:0

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

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

2015-10-12 11:53:16

阅读数:941

评论数:0

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

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

2015-10-11 15:59:20

阅读数:453

评论数:0

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

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

2015-10-08 23:42:37

阅读数:286

评论数:0

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

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

2015-10-04 21:07:50

阅读数:288

评论数:0

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

题目 : 给定两个字符串,求出它们之间连续的最长的相同子字符串的长度。 eg : fbaabe,ebaabf,连续最长子串长度为4。 注意:求最长回文子串也可以用求最长公共子串来求,只需将字符串反转作为另外一个字符串,回文部分反转之后不变,然后求LCS(Longest common subst...

2015-09-30 20:46:54

阅读数:349

评论数:0

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

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

2015-09-30 20:45:43

阅读数:335

评论数:0

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

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如,输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该...

2015-09-30 20:43:39

阅读数:839

评论数:0

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

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

2015-09-30 20:41:58

阅读数:2029

评论数:0

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

前言其实在读大学时就开始想写技术博客,可是一直都没有开始,就在今年的一个偶然的想法,就陆陆续续开始写自己的博客,后来基本就成为一种习惯,当每遇到或学习了一种 新的技术或知识,第一想法就是整理到自己的博客里去,而以前总是喜欢拿个txt或者word总结整理出来。写到txt或word中一个非常不好的就是...

2015-07-20 18:12:51

阅读数:604

评论数:1

常用文本操作命令

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

2017-05-23 20:22:25

阅读数:226

评论数:0

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

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

2017-04-17 17:34:17

阅读数:382

评论数:0

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