计算组合数

链接

// 组合数问题:C(m+n-2, m-1)
class Solution {
    public int uniquePaths(int m, int n) {
        long numerator = 1; // 防止分子乘法溢出
        int denumerator = m-1;
        
        int tx = m-1;
        int ty = n+m-2;

        while (tx-- > 0) {
            numerator *= (ty--);

            while (denumerator != 0 && numerator % denumerator == 0) {
                numerator /= denumerator;
                denumerator--;
            }
        }
        return (int)numerator;
    }
}

 

posted @ 2022-03-28 18:02  Peterxiazhen  阅读(11)  评论(0编辑  收藏  举报