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