動態規劃 62 不同路徑 53 最大子序和

2021-08-21 00:23:26 字數 1126 閱讀 3183

62、 不同路徑

乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。

機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。

問總共有多少條不同的路徑?

例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?

說明:m 和 n 的值均不超過 100。

class solution 

for(int j=0;j0][j] = 1;

}for(int i=1;ifor(int j=1;j1][j] + dp[i][j-1];}}

return dp[m-1][n-1];

}}

使用壓縮演算法後:

先計算第一行,然後第二行。。。。。

class solution      

for(int i=1;i0] = 1;

for(int j=1;j1];}}

return dp[n-1];

}}

53、 最大子序和

給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。

示例:輸入: [-2,1,-3,4,-1,2,1,-5,4],

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

高階:如果你已經實現複雜度為 o(n) 的解法,嘗試使用更為精妙的分治法求解。

保留上一次

class

solution else

if(max <= sum)

pre = sum;

}return max;

}}

class

solution

if(sum

< 0)

}return max;

}}

注意:兩個if 的順序不能反。因為後面的把sum的值給改掉了!

還可以儲存上乙個值pre。

我的詳細解釋:

62 不同路徑 動態規劃

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?本質上就是乙個 楊輝三角。這是個楊輝三角形,每個位置的路徑 該位置左邊的路徑 該位置上邊的路徑 動態...

動態規劃 leetcode62 不同路徑 C

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?示例 1 輸入 m 3,n 2 輸出 3 解釋 從左上角開始,總共有 3 條路徑可以到達右下角。向右...

leetcode 第62題 不同路徑 動態規劃

我小時候還經常想這一類的問題呢,哈哈。題目 乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?首先想到的是遞迴,但是用的時間太長了。還是用動態規劃比較...