题目链接:摸我
看完题目会有一些比较直观的想法,显然是用DP,迭代公式也比较好想,f(i,j) = max{ f(i-1,j), f(i+1,j), f(i,j-1), f(i,j-1) } + 1
在上述公式中要注意的是当且仅当周围的点比当前点小的时候才能列入计算的表达式中。
为了让搜索更为迅速,我给数据增加了边界,并且由于采用了迭代的方式,对DP数组中的数值设置了Unprocessed和Processing两个值,只有未处理的节点才会进行迭代计算。
废话不多说,代码如下:
题目链接:摸我
看完题目会有一些比较直观的想法,显然是用DP,迭代公式也比较好想,f(i,j) = max{ f(i-1,j), f(i+1,j), f(i,j-1), f(i,j-1) } + 1
在上述公式中要注意的是当且仅当周围的点比当前点小的时候才能列入计算的表达式中。
为了让搜索更为迅速,我给数据增加了边界,并且由于采用了迭代的方式,对DP数组中的数值设置了Unprocessed和Processing两个值,只有未处理的节点才会进行迭代计算。
废话不多说,代码如下: