算法学习
文章平均质量分 72
子衿_青青
不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之
展开
-
数字三角
问题描述:给定一个由n行数字组成的数字三角形,如下图所示。试用动态规划算法,计算出从三角 顶部至底部的一条路径,使得该路径经过的数字总和最大。 注意每个数字只能走向下一行左边或右边的数字,而不能跳跃的走。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输入格式第一行是数字三角的行数n,1转载 2016-11-02 23:54:13 · 738 阅读 · 0 评论 -
两个有序数序列中找第k小
Description: 已知两个已经排好序(非减序)的序列X和Y,其中X的长度为m,Y长度为n, 现在请你用分治算法,找出X和Y的第k小的数,算法时间复杂度为O(max{logm, logn}) 分析: 既然说明了分治,那肯定是划分为子问题。又已经排好序,类比于二分查找,每次丢弃一半,我们可以将X的一半元素与Y的一半元素合并在一起,再判断丢弃哪部分。取X[xBeg...xMid], Y[yB转载 2016-10-29 19:49:34 · 1055 阅读 · 0 评论 -
不能移动的石头合并问题
Description 做如下两个模型的石子合并,如下模型石子都不能移动出列,且合并都仅发生在相邻两堆石子中: (1)第一个模型:一行排列且相邻合并 有n堆石子A1,A2,...,An形成一行,每堆石头个数记为ai(1<=i<=n),相邻两堆可合并,合并的分值为新堆的 石子数。求合并为一堆的最低得分和最高得分。 (2)第二个模型:一圈排列且相邻合并 有n堆石子A1,A2,...,An形成转载 2016-11-19 22:15:23 · 380 阅读 · 0 评论 -
java中sqrt函数的详解
一、原理:牛顿迭代法 具体解释:牛顿迭代法求平方根 那我们怎么用牛顿迭代法呢? 首先要明白,牛顿迭代法求的是函数和X轴的交点的横坐标,也就是我们说的根 1)那么第一步就是构建曲线了。 假设有一个数c,我们求它的平方根x,那么有一个等式,x^2 = c;挪到一边就是求 f = x^2 - c的根x 2)带入上面的公式 也就是 3)既然是个迭代,那么原创 2017-08-14 18:41:06 · 18669 阅读 · 0 评论 -
二项分布,binomial(n,k,p)
一、二项分布,递归实现 public static double binomial(int N, int k, double p){ if(N==0 && k==0) return 1.0; if(N < 0 || k < 0) return 0.0; return (1.0 - p) * binomial(N-1, k, p) + p * binomial(N-1, k-1, p原创 2017-09-06 09:35:08 · 4944 阅读 · 0 评论