Skip to content

Latest commit

 

History

History
86 lines (64 loc) · 1.63 KB

20220419.md

File metadata and controls

86 lines (64 loc) · 1.63 KB

Algorithm

119. Pascal's Triangle II

Description

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?

Solution

class Solution {
    public List<Integer> getRow(int rowIndex) {
        rowIndex++;
        List<List<Integer>> lists =  new ArrayList<>();
        if(rowIndex==0){
            List<Integer> list = new ArrayList<>();
            return list;
        }
        if(rowIndex>=1){
            List<Integer> list = new ArrayList<>();
            list.add(1);
            lists.add(list);
        }
        if(rowIndex>=2){
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(1);
            lists.add(list);
        }
        if(rowIndex>=3){
            for(int i=3;i<=rowIndex;i++){
                List<Integer> list = new ArrayList<>();
                List<Integer> pre = lists.get(i-1-1);
                list.add(1);
                for(int j=1;j<i-1;j++){
                    list.add(pre.get(j-1)+pre.get(j));
                }
                list.add(1);
                lists.add(list);
            }
        }
        return lists.get(rowIndex-1);
    }
}

Discuss

Review

Tip

Share