[LeetCode] 62. Unique Paths

来源:互联网 发布:python生成一组随机数 编辑:程序博客网 时间:2024/06/06 04:39

思路:
全都是动态规划, 第一个方法就是开辟一块m * n的数组, 并都初始化为1, 遍历除第一行第一列以外的所有元素, 每个格子等于自己加上他上方的加上他左方的和.
第二个是优化一下只需要O(min(m, n))的空间.

int uniquePaths(int m, int n) {    int count[m][n];    for (int i = 0; i < m; i++)         for (int j = 0; j < n; j++)            count[i][j] = 1;    for (int i = 1; i < m; i++)         for (int j = 1; j < n; j++)            count[i][j] = count[i - 1][j] + count[i][j - 1];    return count[m - 1][n - 1];}
int uniquePaths(int m, int n) {    if (m > n) return uniquePaths(n, m);    int count[m];    for (int i = 0; i < m; i++)        count[i] = 1;    for (int j = 1; j < n; j++)         for (int i = 1; i < m; i++)            count[i] += count[i - 1];    return count[m - 1];}
0 0
原创粉丝点击