![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
新村10
这个作者很懒,什么都没留下…
展开
-
牛顿迭代法求解一个数的n次方根
1.泰勒展开n阶可微函数f(x)在x=x0处的展开为2.牛顿迭代法对于求a的立方根,可以设f(x)=x^3-a,从而转换成求解f(x)=0,即求方程的根。对于求a的平方根,设f(x)=x^2-a,从而转换成求解f(x)=0初始化可以令x0=1,当两次求解的差的绝对值小于0.000001时,认为结果可以接受。3.Java实现(立方根)public static double getCubeRoot(...原创 2018-02-28 14:52:48 · 5393 阅读 · 0 评论 -
java api中关于进制转换的函数
//十进制转成十六进制:Integer.toHexString(n1);//十进制转成八进制Integer.toOctalString(n1);//十进制转成二进制Integer.toBinaryString(12);//十六进制转成十进制Integer.valueOf("FFFF",16).toString();//十六进制转成二进制Integer.toBinaryString(Integer....转载 2018-03-01 18:10:17 · 508 阅读 · 0 评论 -
01背包问题
原文链接: javacodegeeks 翻译: ImportNew.com - hejiani译文链接: http://www.importnew.com/13072.html问题假定背包的最大容量为W,N件物品,每件物品都有自己的价值和重量,将物品放入背包中使得背包内物品的总价值最大。 可以想象这样一个场景——小偷在屋子里偷东西,他带着一只背包。屋子里物品数量有限——每件...转载 2018-02-25 21:19:05 · 158 阅读 · 0 评论 -
图的深度优先和广度优先遍历及其Java实现
遍历图的遍历,所谓遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略:深度优先遍历广度优先遍历深度优先深度优先遍历,从初始访问结点出发,我们知道初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点。总结起来可以这样说:每次都在访问完当前结点后首先访问当前结点的第一...转载 2018-03-12 16:31:34 · 478 阅读 · 0 评论 -
一个链表中包含环,请找出该链表的环的入口结点
问题:一个链表中包含环,请找出该链表的环的入口结点?从两个大的角度思考这个问题1.记录遇到的每一个链表元素在一次遍历过程中的,使用一种数据结构(数组、Hash表、基数树)记录遇到的每一个链表元素并判断是否已经遇到过,其中使用基数树可以获得O(n)O(n)的时间复杂度,但是可会有比较高的空间复杂度。2.利用链表的性质想法一:时间复杂度为O(n),两个指针,一个在前面,另一个紧邻着这个指针,在后面。两...转载 2018-03-13 14:14:52 · 277 阅读 · 0 评论 -
求两个字符串的最长公共子序列(DP实现)
算法原理用二维数组c[i][j]记录串x1x2⋯xi与y1y2⋯yj的LCS长度,则可得到状态转移方程如果某一个字符串长度为0,则公共子序列长度为0;如果字符串长度都不为0,如果xi=yj,那么公共子序列长度为两个字符比较之前的公共子序列的长度+1;如果xi≠yj,那么LCS的长度为前面字符比较得到的LCS的较大值。如下面的求abca和acba的最长公共子序列得到的数组:...原创 2018-03-13 16:50:11 · 1646 阅读 · 4 评论 -
两个字符串之间的最短编辑距离
1.算法原理编辑距离(Edit Distance)是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数,编辑操作包括增、删、改操作。例如将kitten一字转成sitting:sitten (k→s)sittin (e→i)sitting (→g),最短编辑距离为3.跟“最长公共子序列”一样,我们采用一个二维数组来保存字符串X和Y当前的位置的最小编辑距离。现有两个序列X={x1,x2,x3,....原创 2018-03-14 09:53:18 · 1399 阅读 · 0 评论