leetcode 中等十 64.最小路径和

最小路径和:

动态规划:

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];
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36688622/article/details/91399307
今日推荐