Lintcode: Unique Paths
C++
dp
递推式:dp[i][j] = dp[i-1][j] + dp[i][j-1]
初值:dp[i][j] = 1,i=0 or j=0
空间优化:省掉一维
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 };
空间优化
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 };
![字节跳动内推](https://img2020.cnblogs.com/blog/323808/202004/323808-20200415172728571-1992447742.jpg)
找我内推: 字节跳动各种岗位
作者:
ZH奶酪(张贺)
邮箱:
cheesezh@qq.com
出处:
http://www.cnblogs.com/CheeseZH/
*
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。