leetcode-119.杨辉三角Ⅱ

题目:https://leetcode-cn.com/problems/pascals-triangle-ii/

答案:

根据杨辉三角规律

            1                        (1+1)^{0}

        1      1                      (1+1)^{1}(1+1)^{1}(1+1)^{1}

     1      2     1                   (1+1)^{2}(1+1)^{2}

1      3      3      1              (1+1)_{3}^{}

每个位置是 二项式展开项系数, 每一行总和 是 2^{n-1} 次幂

对称原理第n行 第m个元素 和 第n行 第n-m 个元素相对:C(n-1,m-1)=C(n-1,n-m)

所以 第n行 第m个元素等于

排列组合的公式:

f(1) = 1;

f(m) = (n-1)!/((m-1)! *(n-1-(m-1))!)

f(m+1) = (n-1)!/(m!*(n-1-m)!)

f(m+1)/f(m) = (n-m)/m

f(m+1) = f(m)*(n-m)/m

所以得出下面答案

 public List<Integer> getRow(int rowIndex) {

    List<Integer> result = new ArrayList<>(rowIndex + 1);

        int numRows = rowIndex + 1;

        for (int i = 0; i < numRows; i++){

            if (i == 0){

                result.add(1);

            }else {

                long value = (long) result.get(i - 1) * (long) (numRows - i) / i;

                result.add((int) value);

            }

        }

        return result;

    }

猜你喜欢

转载自blog.csdn.net/wuqiqi1992/article/details/108346531