![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
豪迈的清汤水水
这个作者很懒,什么都没留下…
展开
-
DAG路径输出(递归、深度优先搜索)
1、先定义图的节点,节点ID和下一节点号package dyfu.algorithm;import java.util.LinkedList;//图的节点public class Node { private Integer id; //节点 private LinkedList<Node> nextNode = null; //下一节点 private...原创 2019-01-11 09:44:30 · 1517 阅读 · 3 评论 -
动态规划:最大子序列和最大子串 Java
最大子序列是指子串与母串相比顺序不变且子串的字符与母串相等。这里有字符串str1 = CNBLOG , str2 = BELONG,则它的最大子序列为BLOG,虽然N也相等但是顺序不对。最大子串指str1与str2相同且连续的部分,也就是LO。 求解最大子序列,先定义最大子序列长度LCS[i,j] = LCS[i-1,j] + 1 (str1[i]==str2[j]) 或 LCS[...原创 2019-01-24 11:15:45 · 1328 阅读 · 0 评论 -
动态规划:01背包
01背包解决的问题是,当存在N个物品,且每个物品的重量为w[i],价值v[i],现存在一个包裹体积为capacity,那么如何放置物品可是包裹的价值最大。这里有一篇详细的参考文章:https://www.cnblogs.com/Christal-R/p/Dynamic_programming.html首先这里有一个递推关系式,Val[i][j]指的是物品 i 放在容量只剩下 j 的...原创 2019-01-14 16:58:25 · 207 阅读 · 0 评论 -
动态规划:完全背包 Java
完全背包问题是,有N种物品,体积为w,价值为v ,且每种物品都有无限件,那么,现在有体积为capacity的背包,怎么放物品每种物品放几件能使背包的价值Val最大。 动态规划的重点是找到递推关系式,完全背包的递推关系式为:Val[i][j] = max{Val[i-1][j-k*w[i]]+k*v[i]} 0<=k*w[i]<=j , 即,当背包的剩余容...原创 2019-01-22 11:23:47 · 840 阅读 · 0 评论 -
动态规划:完全背包由01背包解决 Java
完全背包的三个for循环的解法参考文章动态规划:完全背包 Java,01背包的解法参考文章动态规划:01背包。01背包的状态转移函数为:Val[i][j] = max{Val[i-1][j],Val[i-1][j-w[i]+v[i]},即在背包剩余容量为 j 时,放入物品 i ,取放入物品 i 时和不放入时的最大值。01背包为了降低空间复杂度,可以使二维数组转变为一维数组来取得优化。此种优...原创 2019-01-22 15:40:04 · 569 阅读 · 0 评论 -
华为笔试:字典排序 Hello hello world
题目描述对输入的单词进行字典序排序输出: 字典序定义 1. 单词中字母比较不区分大小写,两个单词先以第一个字母作为排序的基准,如果第一个字母相同,就用第二个字母为基准,如果第二个字母相同就以第三个字母为基准。依此类推,如果到某个字母不相同,字母顺序在前的那个单词顺序在前。 2. 当一个短单词和一个长单词的开头部分都相同(即短单词是长单词从首字母开始的一部分),短单词顺序在前。 3. 字母大...原创 2019-09-07 22:37:33 · 547 阅读 · 0 评论 -
M的N次方 快速幂算法
现有3的7次方,7=1+2+4,则7的二进制位0111,7右移一位是相当于除以2,依次右移相当于除以4,8,也就是说3的2次方,3的4次方,等等。如果幂为奇数,则每次多乘一次底数。public class PowMofN { public static void main(String[] args) { System.out.println(pow(3,7...原创 2019-09-27 11:57:12 · 1953 阅读 · 0 评论