有图有真相

一言不合就上源码

经典算法--最大存水量问题

题目:给出一个数组代表围柱的高度,求能围柱的最大的水量,例如数组{ 5,2,3,2,4 },最大水量为5。如下图:黄色部分为围柱,绿色部分是能够围住的水,图中围柱的高度依次为 5,2,3,2,4最多能围住的水量是5。 思路:求出每个柱子上面

2017-04-29 20:09:17

阅读数:1662

评论数:2

笔试面试算法经典--动态规划-最大子矩阵和(Java)

【题目】 给定一个矩阵 matrix,其中矩阵中的元素可以包含正数、负数、和0,返回子矩阵的最大累加和。例如,矩阵 matrix 为: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8...

2017-04-12 17:36:20

阅读数:1528

评论数:0

笔试面试算法经典--连续子数组的最大乘积及连续子数组的最大和(Java)

1. 子数组的最大和 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。例如数组:arr[]={1, 2, 3, -2, 4, -3 } 最大子数组为 {1, 2, 3, -2, 4} 和为8。解法1(时间复杂度O...

2017-04-12 16:31:33

阅读数:329

评论数:0

笔试面试算法经典--矩阵的最短路径和(Java)

题目 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有路径中最小的路径和。 例子: 给定m如下: 1 3 5 9 8 1 3 4 5 0 6 1 8 8 4 0 路径1,3,1,0,6,1...

2017-04-07 17:11:17

阅读数:4845

评论数:0

笔试面试算法经典--最长公共子串(Longest Common SubString)

最长公共子串(Longest Common Substring): 是指两个字符串中最长连续相同的子串长度。例如:str1=“1AB2345CD”,str2=”12345EF”,则str1,str2的最长公共子串为2345。解法1如果 str1 的长度为 N,str2 的长度为 M,生成大小为...

2017-04-06 20:53:09

阅读数:1885

评论数:1

动态规划(篇3)最长公共子序列(LCS)

LCS问题陈述: 给定两个序列,找出它们中存在的最长子序列的长度。子序列是以相同的相对顺序出现但不一定是连续的序列。例如,“abc”,“abg”,“bdf”,“aeg”,“acefg”,…等是“abcdefg”的子序列。因此,长度为n的串具有2 ^ n个不同的可能子序列。 示例: 用于输入...

2017-03-14 15:37:22

阅读数:760

评论数:0

动态规划(篇2)最长递增子序列(LIS)

最长增加子序列(LIS)问题是找到给定序列的最长子序列的长度,使得子序列的所有元素以增加的顺序排序。例如,{10,22,9,33,21,50,41,60,80 }的LIS的长度为6,LIS为 {10,22,33,50,60,80}。最优子结构: 令arr [0..n-1]是输入数组,L(i)是以...

2017-03-14 10:09:40

阅读数:2082

评论数:0

动态规划(篇1)重叠子问题

动态规划是一种算法范例,通过将其分解为子问题来解决给定的复杂问题,并存储子问题的结果,以避免再次计算相同的结果。 以下是一个问题的两个主要属性,表明给定的问题可以使用动态规划来解决。 在这篇文章中,我们将详细讨论第一个属性(重叠子问题)。动态规划的第二个属性在下一篇文章即动态规划篇2中讨论。1)...

2017-03-14 09:23:55

阅读数:442

评论数:0

Levenshtein distance最小编辑距离算法实现

动态编程| (编辑距离) 给定两个字符串str1和str2以及可以对str1执行的操作。找出将“str1”转换为“str2”所需的最小编辑次数(操作)。插入 删除 代替所有上述操作具有相等的成本。例子: 输入:str1...

2017-03-13 22:10:03

阅读数:1555

评论数:0

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