博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
62. Unique Paths(dp)
阅读量:4181 次
发布时间:2019-05-26

本文共 774 字,大约阅读时间需要 2 分钟。

题目:求解从左上角到右下角的路径条数。

思路:

动态规划(dp[x][y]=dp[x-1][y]+dp[x][y-1])

dp[x][y]表示到达位置(x,y)时的路径条数,dp[x][y]=dp[x-1][y](到达位置(x-1,y)时的路径条数)+dp[x][y-1](到达位置(x,y-1)时的路径条数),其中 dp[1][1]=1。

class Solution {public:    int uniquePaths(int m, int n) {        int dp[101][101];        memset(dp,0,sizeof(dp));        for(int x=1;x<=m;x++){             for(int y=1;y<=n;y++){                 dp[x][y]=dp[x-1][y]+dp[x][y-1];                 dp[1][1]=1;           }        }        return dp[m][n];    }};

思路二:组合数

C(m,n)=C(m-1,n)+C(m-1,n-1)

矩阵大小为m*n,所以一共需要走m+n-2步到达目标位置其中一共需要向下走m-1步,因次总的步数为C(m+n-2,m-1)。根据上面的公式即可求出。C[x][0]=1.

class Solution {public:    int uniquePaths(int m, int n) {        int C[202][101];        memset(C,0,sizeof(C));        for(int x=0;x<202;x++) C[x][0]=1;        for(int x=1;x

转载地址:http://ynrai.baihongyu.com/

你可能感兴趣的文章
21. Merge Two Sorted Lists(链表)
查看>>
2. Add Two Numbers(链表)
查看>>
637. Average of Levels in Binary Tree(Tree)
查看>>
226. Invert Binary Tree(Tree)
查看>>
328. Odd Even Linked List(链表)
查看>>
199. Binary Tree Right Side View(Tree)
查看>>
230. Kth Smallest Element in a BST(Tree)
查看>>
求字符串的最长回文串-----Manacher's Algorithm 马拉车算法
查看>>
回溯法常用的解题模板和常见题型
查看>>
深入分析Java I/O 的工作机制
查看>>
动态规划的套路----左神
查看>>
KMP算法简解
查看>>
左神算法课进阶版总结
查看>>
左神算法基础班总结
查看>>
Linux性能优化
查看>>
进程间的通信---UNIX高级环境编程
查看>>
基于SSH开发的城市公交管理系统 JAVA MySQL
查看>>
基于SSH开发的勤工助学管理系统 JAVA MySQL
查看>>
基于SSH开发的宠物销售商城系统 JAVA MySQL
查看>>
基于springboot的宠物领养管理系统 java
查看>>