今天参加了腾讯在线笔试,题目不是很难,但是自己做的不好,前面的有些知识点是自己不太熟悉,属于不用就忘,仅仅回想起一点肯定是不够用的。
以前一直以为,到大学之后,所有知识点都可以不再记了,会用就好(用多了确实就记住了),或者用过之后,有个印象,到再需要用的时候再”找回来”就可以了。但是很多知识点是不会经常用的,而真正用到的时候,再去”找回来”成本其实还挺高的,甚至还要付出很大的代价(比如考试的时候)。所以对于不常用的知识点还是需要偶尔复习复习。
今天编程题,最后一道是动态规划的,当时没弄出来,等到结束之后,马上打开eclipse,几分钟就搞定了。下面总结一下这个题,也算复习一下动态规划。
题目:
输入一个矩阵num[m][n],现在从左上角(num[0][0])到达右下角num[m-1][n-1],且只能向下或者向右走。定义经过的所有点的数字之和为该条路径的收益,求到达右下角的最大收益。
求解:
用动态规划的方法,从左上角开始,计算到达每一个点的最大收益。
/**
* 用动态规划方法计算:
* 用一个数组result[i][j]保存每一个点i,j的最大收益
* num[i][j], i=j=0
* result[i][j]=result[i][j-1]+num[i][j],