最小路径和:
动态规划:
PHP,32ms,击败100%。
状态转移方程:
$grid[$i][$j] += min($grid[$i+1][$j],$grid[$i][$j+1]);
- 题目规定,只能走右和下
- 多种动归的解法,但是可以在O(1)的情况下解题
- 反向求解和正向同理
class Solution {
/**
* @param Integer[][] $grid
* @return Integer
*/
function minPathSum($grid) {
$n = count($grid[0]) - 1;
$m = count($grid) - 1;
for($i = $m;$i >= 0;$i--){
for($j = $n;$j >= 0;$j--){
if($i == $m && $j != $n) $grid[$i][$j] += $grid[$i][$j+1];
elseif($i != $m && $j == $n) $grid[$i][$j] += $grid[$i+1][$j];
else $grid[$i][$j] += min($grid[$i+1][$j],$grid[$i][$j+1]);
}
}
return $grid[0][0];
}
}