62. Unique Paths

description:

https://leetcode.com/problems/unique-paths/
機器人從一堆方格的左上角走到右下角,只能往右或者往下走 ,問有幾種走法
Note:code

Example:ip

Example 1:

Input: m = 3, n = 2
Output: 3
Explanation:
From the top-left corner, there are a total of 3 ways to reach the bottom-right corner:
1. Right -> Right -> Down
2. Right -> Down -> Right
3. Down -> Right -> Right

Example 2:

Input: m = 7, n = 3
Output: 28

answer:

class Solution {
public:
    int uniquePaths(int m, int n) {
        double sum = 1, up = 1;  // 這裏必定是 double 
        int mi = m < n ? m : n;  // 必須先找出最小的,雖然數學上兩個排列相等,可是程序裏由於數的範圍限制神馬的不清楚,會超時
        for (int i = 0; i < mi - 1; i++) {
            sum *= m + n - 2 - i;
            up *= i + 1;
        }
        return (int)(sum / up); // 最後要把double 變到 integer
    }
};

relative point get√:

hint :

就是在總步數 m + n - 2 裏選 n-1 步 (m - 1)是往下走(右)leetcode

相關文章
相關標籤/搜索