算法夜谈の动态规划问题
1.最佳路径
时间:2014-3 出自:腾讯前端闯关最后一题

解析:在邢神的帮助下顺利解决。
1.遍历每个元素,将从顶端到达此元素的最大数字和记录。
2.在算法过程中,要记录节点的父亲节点,每个节点最多有2个父亲,选取能使节点达到《从顶端到达此元素最大数字和》要求的父亲,作为其父亲节点。
3.遍历最后一行,取出最大值,得到使数字和最大的最后一列的元素。
4.通过记录的父亲节点,得到最佳路径。
2.两个串求其最长的公共子串
时间:2014-3 出自:阿福的阿里面试
例子: M=[0,1,2,3,4,5,6,5,4,3,2,1];
N=[7,1,2,3,4,6,5,4,3,2,1,2,3,0];
结果:[6,5,4,3,2,1]
解析: 第一个串M长度为m,第二个串N长度为n
1.建立m*n的二维数组S,如果M[i]≠N[j],那么S[i][j]=0;如果M[i]=N[j],那么S[i][j]=S[i-1][j-1]+1。
2.遍历二维数组,得到最大值,并记录其坐标,得到最长子串。
浙公网安备 33010602011771号