使用排列组合计算公式来计算,注意使用long long型数据保证计算不会溢出。

 class Solution {
public:
long long FA(long long a) //定义阶乘函数FA
{
long long x = ;//定义变量b
for (int i = ; i <= a; i++)//计算阶乘
x *= i;
return x;//返回值得到b=a!
} long long FA(long long a, long long b) //定义阶乘函数FA
{
//long long b = 1;//定义变量b
long long x = ;
for (int i = b; i <= a; i++)//计算阶乘
x *= i;
return x;//返回值得到b=a!
} int uniquePaths(int m, int n) {
long long a = FA(m - + n - , max(m, n));
long long b = FA(min(m, n) - );
return (int)(a / b);
}
};

补充一个使用dp的方案,python 实现:

 class Solution:
def uniquePaths(self, m: 'int', n: 'int') -> 'int':
dp =[[0 for col in range(n)] for row in range(m)]
for i in range(m):
dp[i][0] = 1 for j in range(n):
dp[0][j] = 1
print(dp)
for i in range(1,m):
for j in range(1,n):
dp[i][j] = dp[i-1][j] + dp[i][j-1]
return dp[m-1][n-1]

初始化index==0的行和index==0的列,起点为0,其他都是1(黑色)。

然后从(1,1)开始计算,可以一行一行的计算,也可以一列一列的计算,也可以按对角线计算,总之一步一步的推进,一直计算到(i,j)元素(红色),即为所求。

注意,dp[i][j]==dp[m-1][n-1]。

最新文章

  1. mybatis中的#和$的区别
  2. CSS3 HSL()详解:
  3. 将特定TD颜色改变的两种方法
  4. 伪造Http头拿flag
  5. WIN7 64位系统注册银行支付组件
  6. 第十章 Vim程序编辑器学习(下)
  7. select 嵌套查询
  8. 在Swift中的ASCII到字符转换的问题
  9. 【学习笔记】【C语言】数据
  10. 从sample来学习Java堆(转)
  11. #include &lt;hash_set&gt;
  12. enode框架step by step之框架的物理部署思路
  13. ASP.NET Core 2.0 : 八.图说管道,唐僧扫塔的故事
  14. Python&#160;Python实现批量安装android&#160;apk包
  15. 综述 - 染色质可及性与调控表观基因组 | Chromatin accessibility and the regulatory epigenome
  16. (转载)Windows WMIC命令使用详解(附实例)
  17. elasticsearch mysql logstash 同步 简单配置【环境centos7 elasticsearch 6.0 mysql 5.7 logstash 6.0】
  18. 修改linux的ssh默认端口号22的方法
  19. vue,react,angular本地配置nginx 环境单页面应用
  20. windows2003密码忘记了该如何处理

热门文章

  1. 初见《构建之法》orz……
  2. mysql慢查询----pt-query-digest详解慢查询日志(linux系统)
  3. Linux:ldd命令详解
  4. Python 进程池的同步方法
  5. 13--Python入门--文件读写--CSV&amp;Excel文件
  6. Bootstrap如何禁止响应式布局 不适配
  7. Python全栈之路----常用模块----包及跨模块导入
  8. 10行代码使用python统计词频
  9. 用turtle画图
  10. Nginx做web服务器反向代理