每日一道算法题030 杨辉三角Ⅱ

579 阅读1分钟

题目

leetCode 第 119 题,杨辉三角Ⅱ 关联类型:数组

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 3
输出: [1,3,3,1]

做题时间

class Solution {
    public List<Integer> getRow(int rowIndex) {
      
      
      
    }
}

以上给出方法输入参数,完成作答。

题目分析

  1. 获取杨辉三角的指定行
  2. 直接使用组合公式C(n,i) = n!/(i!*(n-i)!)
  3. 则 第(i+1)项 = 第i项 * (n-i)/(i+1);

解答分析

本文只分析本人做题思路,仅供参考,了解一种解题思想,其他各种做题思路请上网查阅。

解答成功:
执行耗时:0 ms,击败了100.00% 的Java用户
内存消耗:35.8 MB,击败了98.21% 的Java用户

class Solution {
    public List<Integer> getRow(int rowIndex) {
        List<Integer> list = new ArrayList<>(rowIndex + 1);
        long cur = 1;
        for (int i = 0; i <= rowIndex; i++) {
            list.add((int) cur);
            cur = cur * (rowIndex - i) / (i + 1);
        }
        return list;
    }
}