使用排列组合计算公式来计算,注意使用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]。

leetcode62的更多相关文章

  1. 【leetcode-62,63,64 动态规划】 不同路径,最小路径和

    给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [   [1,3,1], [1,5,1] ...

  2. [LeetCode62]Unique Paths

    题目: A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  3. [Swift]LeetCode62. 不同路径 | Unique Paths

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  4. leetcode62—Unique Paths

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  5. leetcode-62. Unique Paths · DP + vector

    题面 A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  6. Leetcode62.Unique Paths不同路径

    一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为" ...

  7. LeetCode62. 不同路径

    由于机器人只可以向右和向下移动,所以我们要到第i行第j列,只可以由第i-1行第j列和第i行第j-1列移动一步得到,因此要到第i行第j列的方案数就是到第i-1行第j列的方案数和到第i行第j-1列的方案数 ...

  8. 终拿字节Offer...动态规划复盘...

    大家好!我是 Johngo 呀! 和大家一起刷题不快不慢,没想到已经进行到了第二阶段,「动态规划」这部分题目很难,而且很不容易理解,目前我的题目做了一半,凭着之前对于「动态规划」的理解和最近做的题目做 ...

随机推荐

  1. 测试同学必备抓包工具--charles之安装

    1,下载charles,官网:https://www.charlesproxy.com/ 2,下载完成,先试着用一下,网址访问百度看看... 注意,windows proxy如果勾选,则代表可以抓取网 ...

  2. faker模块

    faker模块中有很多函数,可以直接生成手机号,身份证号,姓名等 1.安装faker pip install faker 2.faker的使用 from faker import Faker f=Fa ...

  3. ubuntu 使用cron设置定时启动任务

    介绍 cron,是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业. 在Ubuntu server 下,cron是被默认安装并启动的:如果没有启动,自行设置并启动(chkconfig\s ...

  4. alias-unalias

    一.用一条命令完成创建目录/data/test,即在/目录下创建/data目录,及其子目录/data/test 解答:mkdir -p /data/test 实践过程: 二.已知/tmp目录下已经存在 ...

  5. 蓝牙协议分析(9)_BLE安全机制之LL Privacy

    1. 前言 在上一篇文章[1]中,我们介绍了BLE的白名单机制,这是一种通过地址进行简单的访问控制的安全机制.同时我们也提到了,这种安全机制只防君子,不防小人,试想这样一种场景: A设备表示只信任B. ...

  6. 返回指针的函数 ------ 指针函数(pointer function)

    指针函数: 其本质是一个函数, 其函数返回值为某一类型的指针. 定义形式: 类型 *指针变量名(参数列表): 例如: int *p(int i,int j); p是一个函数名,该函数有2个整形参数,返 ...

  7. php网站速度性能优化(转)

    一个网站的访问打开速度至关重要,特别是首页的打开加载过慢是致命性的,本文介绍关于php网站性能优化方面的实战案例:淘宝首页加载速度优化实践 .想必很多人都已经看到了新版的淘宝首页,它与以往不太一样,这 ...

  8. laravel 语言插件

    aravel 5 语言包,包含 52 种语言, 基于 caouecs/Laravel-lang. trans() 函数根据你的 [本地化文件] 翻译指定的语句 安装 composer require ...

  9. nodejs----初期学习笔记

    //一 回调函数 //require---命令//Node 使用了大量的回调函数,Node 所有 API 都支持回调函数.//例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件 ...

  10. Centos7.4安装配置haproxy和Keepalived补充内容

    补充比较杂 1.当master服务恢复正常之后,backup机器收到消息,然后让出vip 下面是master机器服务恢复正常后,backup机器的Keepalived日志 收到master的消息通知, ...