首页 > 代码库 > LeetCode--Unique Paths

LeetCode--Unique Paths

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

The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked ‘Finish‘ in the diagram below).

How many possible unique paths are there?

技术分享

Above is a 3 x 7 grid. How many possible unique paths are there?

Note: m and n will be at most 100.

class Solution 
{
public:
    int uniquePaths(int m, int n) 
    {
        if(m==1 || n==1)
            return 1;
        long long up,down;
        if(m>n)
        {
            up = cal(m+n-2,m);
            down = cal(n-1,1);
        }
        else
        {
            up = cal(m+n-2,n);
            down = cal(m-1,1);
        }
         return up/down;
    }
    long long cal(int hi, int lo)
    {
        long long res = 1;
        while(lo<=hi)
        {
            res *= lo;
            lo++;
        }
        return res;
    }
};


LeetCode--Unique Paths