題意:給定一個二維數(shù)組,找出從top left到bottom right的所有路徑
思路:動態(tài)規(guī)劃,遍歷每一行,dp[i]表示某一行的節(jié)點(diǎn)i的所有可能路徑總數(shù),遞推公式dp[i] = dp[左邊的路徑總數(shù)] + dp[上邊的路徑總數(shù)]
思想:動態(tài)規(guī)劃
復(fù)雜度:時間O(m^n),空間O(n)
class Solution {
public int uniquePaths(int m, int n) {
if(m == 0 || n ==0)
return 0;
int[] dp = new int[n];
for(int i=0;i<n;i++) {
dp[i] = 1;
}
for(int i=1;i<m;i++) {
for(int j=1;j<n;j++) {
dp[j] = dp[j] + dp[j-1];
}
}
return dp[n-1];
}
}