leetcode62

Posted AsenYang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode62相关的知识,希望对你有一定的参考价值。

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

class Solution {
public:
    int M, N;
    int X = 0;
    //从根到叶子有多少个分支,就表示有多少种路径
    //解空间是一个包含{0,1}的集合,总共有(m-1)+(n-1)个元素。
    void BackTrack(int x, int y)
    {
        if (x == M &&y == N)
        {
            //到达叶子节点
            X++;
            return;
        }
        if (x < M)
        {
            BackTrack(x + 1, y);
        }
        if (y < N)
        {
            BackTrack(x, y + 1);
        }
    }

    long long FA(long long a) //定义阶乘函数FA
    {
        long long x = 1;//定义变量b
        for (int i = 1; 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 = 1;
        for (int i = b; i <= a; i++)//计算阶乘 
            x *= i;
        return x;//返回值得到b=a! 
    }

    int uniquePaths(int m, int n) {
        //M = m - 1;
        //N = n - 1;
        //BackTrack(0, 0);
        //return X;
        //单纯计算数量,可以不用递归,只需要计算选择数即可
        /*double res = 1;
        for (int i = 1; i <= n - 1; i++)
            res *= ((double)(m + i - 1) / (double)i);
        return (int)round(res);*/
        long long a = FA(m - 1 + n - 1, max(m, n));
        long long b = FA(min(m, n) - 1);
        return (int)(a / b);
    }
};

 

以上是关于leetcode62的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode62. 不同路径(dp)

LeetCode 62 不同路径

62. 不同路径 -LeetCode

LeetCode 62. 不同路径c++/java详细题解

leetcode 每日一题 62. 不同路径

leetcode 每日一题 62. 不同路径