算法夜谈の动态规划问题

1.最佳路径

时间:2014-3   出自:腾讯前端闯关最后一题

5

解析:在邢神的帮助下顺利解决。

  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.遍历二维数组,得到最大值,并记录其坐标,得到最长子串。

 

 

posted on 2014-03-26 21:47  大咕咕  阅读(123)  评论(0)    收藏  举报

导航