leetcode-119-easy()

Pascal’s Triangle II

Given an integer rowIndex, return the rowIndexth (0-indexed) row of the Pascal's triangle.

In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:

Example 1:

Input: rowIndex = 3
Output: [1,3,3,1]
Example 2:

Input: rowIndex = 0
Output: [1]
Example 3:

Input: rowIndex = 1
Output: [1,1]
Constraints:

0 <= rowIndex <= 33
Follow up: Could you optimize your algorithm to use only O(rowIndex) extra space?

思路一:模拟

public List<Integer> getRow(int rowIndex) {
    int[] arr = {1};
    int[] result = arr;

    for (int i = 2; i <= rowIndex + 1; i++) {
        result = new int[i];

        result[0] = 1;
        result[i - 1] = 1;
        for (int j = 1; j < i - 1; j++) {
            result[j] = arr[j] + arr[j - 1];
        }
        arr = result;
    }

    List<Integer> list = new ArrayList<>();
    for (int r : result) {
        list.add(r);
    }
    return list;
}
————————

Pascal’s Triangle II

Given an integer rowIndex, return the rowIndexth (0-indexed) row of the Pascal's triangle.

In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:

Example 1:

Input: rowIndex = 3
Output: [1,3,3,1]
Example 2:

Input: rowIndex = 0
Output: [1]
Example 3:

Input: rowIndex = 1
Output: [1,1]
Constraints:

0 <= rowIndex <= 33
Follow up: Could you optimize your algorithm to use only O(rowIndex) extra space?

思路一:模拟

public List<Integer> getRow(int rowIndex) {
    int[] arr = {1};
    int[] result = arr;

    for (int i = 2; i <= rowIndex + 1; i++) {
        result = new int[i];

        result[0] = 1;
        result[i - 1] = 1;
        for (int j = 1; j < i - 1; j++) {
            result[j] = arr[j] + arr[j - 1];
        }
        arr = result;
    }

    List<Integer> list = new ArrayList<>();
    for (int r : result) {
        list.add(r);
    }
    return list;
}