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 };
复制代码

 

本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/5006718.html,如需转载请自行联系原作者

相关文章
|
搜索推荐 机器人 SEO
Leetcode 62. Unique Paths & 63. Unique Paths II
原谅我重新贴一遍题目描述,不是为了凑字数,而是为了让搜索引擎能索引到这篇文章,其实也是算一种简单的SEO。 简单描述下题目,有个机器人要从左上角的格子走到右下角的格子,机器人只能向下或者向右走,总共有多少种可能的路径?
35 0
|
机器人
LeetCode 63. Unique Paths II
机器人位于m x n网格的左上角(在下图中标记为“开始”)。 机器人只能在任何时间点向下或向右移动。 机器人正试图到达网格的右下角(在下图中标记为“完成”)。 现在考虑是否在网格中添加了一些障碍。 有多少条独特的路径?
99 0
LeetCode 63. Unique Paths II
|
机器人
LeetCode 62. Unique Paths
机器人位于m x n网格的左上角(在上图中标记为“开始”)。 机器人只能在任何时间点向下或向右移动。 机器人正试图到达网格的右下角(在下图中标记为“完成”)。 有多少可能的独特路径?
80 0
LeetCode 62. Unique Paths
|
索引
LeetCode 373. Find K Pairs with Smallest Sums
给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。 找到和最小的 k 对数字 (u1,v1), (u2,v2) ... (uk,vk)。
160 0
LeetCode 373. Find K Pairs with Smallest Sums
LeetCode 257. Binary Tree Paths
给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。
57 0
LeetCode 257. Binary Tree Paths
|
算法 机器人 人工智能