LeetCode 62.Unique Paths

来源:互联网 发布:淘宝吉他店铺介绍 编辑:程序博客网 时间:2024/05/01 17:17

题目:

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.

分析与解答:典型的DP题目,但这个题可以偷懒。不管怎么走,总共走到终点需要m+n-2步。其中向下m-1步,向右n-1步所以总共的可能性是C(m-1/n-1)。直接计算这个结果即可。注意int类型相乘可能溢出的问题。

class Solution {public:    int uniquePaths(int m, int n) {        m--;n--;        int index = m<n?m:n,sum = m+n,b = index;        long up = sum,down = index;        if(index == 0)            return 1;        for(int i = 1; i < index;++i){            up *= --sum;        }        for(int i = 1;i < index;++i){            down *= --b;        }        return up/down;    }};


0 0
原创粉丝点击