Lintcode: Unique Paths
生活随笔
收集整理的這篇文章主要介紹了
Lintcode: Unique Paths
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C++
dp
遞推式:dp[i][j] = dp[i-1][j] + dp[i][j-1]
初值:dp[i][j] = 1,i=0 or j=0
空間優(yōu)化:省掉一維
1 class Solution { 2 public: 3 /** 4 * @param n, m: positive integer (1 <= n ,m <= 100) 5 * @return an integer 6 */ 7 int uniquePaths(int m, int n) { 8 // wirte your code here 9 vector<vector<int> > dp(m,vector<int>(n)); 10 for (int i = 0; i < m ; ++i) { 11 for (int j = 0; j < n; ++j) { 12 if ( i == 0 ) { 13 dp[i][j] = 1; 14 } else if ( j == 0 ) { 15 dp[i][j] = 1; 16 } else { 17 dp[i][j] = dp[i - 1][j] + dp[i][j - 1]; 18 } 19 } 20 } 21 return dp[m - 1][n - 1]; 22 } 23 };空間優(yōu)化
1 class Solution { 2 public: 3 /** 4 * @param n, m: positive integer (1 <= n ,m <= 100) 5 * @return an integer 6 */ 7 int uniquePaths(int m, int n) { 8 // wirte your code here 9 // vector<vector<int> > dp(m,vector<int>(n)); 10 vector<int> dp(n); 11 for (int i = 0; i < m ; ++i) { 12 for (int j = 0; j < n; ++j) { 13 if ( i == 0 ) { 14 dp[j] = 1; 15 } else if ( j == 0 ) { 16 dp[j] = 1; 17 } else { 18 dp[j] = dp[j] + dp[j - 1]; 19 } 20 } 21 } 22 return dp[n - 1]; 23 } 24 };?
總結(jié)
以上是生活随笔為你收集整理的Lintcode: Unique Paths的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 龙族幻想松岛幸助在哪
- 下一篇: Project Euler 92:Squ