⬆︎
×

[LC] 0119 Pascal’s Triangle II

Java

import java.util.ArrayList;
import java.util.List;

/**
 * <a href="https://leetcode.cn/problems/pascals-triangle-ii/">Pascal's Triangle II</a>
 * 数组;动态规划
 */
class Solution {
    /**
     * C(n, m) = C(n, m - 1) * (n - m + 1) / m
     */
    public List<Integer> getRow(int rowIndex) {
        List<Integer> row = new ArrayList<>();
        row.add(1);
        for (int i = 1; i <= rowIndex; ++i) {
            row.add((int) ((long) row.get(i - 1) * (rowIndex - i + 1) / i));
        }
        return row;
    }
}

Go

func getRow(rowIndex int) []int {
    row := make([]int, rowIndex+1)
    row[0] = 1
    for i := 1; i <= rowIndex; i++ {
        row[i] = row[i-1] * (rowIndex - i + 1) / i
    }
    return row
}

JavaScript

/**
 * @param {number} rowIndex
 * @return {number[]}
 */
var getRow = function(rowIndex) {
    let row = [1];
    for (let i = 1; i <= rowIndex; ++i) {
        row.push((row[i - 1] * (rowIndex - i + 1)) / i);
    }
    return row;
};

PHP

class Solution {

    /**
     * @param Integer $rowIndex
     * @return Integer[]
     */
    function getRow(int $rowIndex): array {
        $row = [1];
        for ($i = 1; $i <= $rowIndex; ++$i) {
            $row[] = (int)(($row[$i - 1] * ($rowIndex - $i + 1)) / $i);
        }
        return $row;
    }
}

发表评论