LeetCode - 118. Pascal's Triangle(Array, Dynamic Programming)

YAMAMAMO·2022년 2월 20일
0

LeetCode

목록 보기
28/100

문제

정수 numRows가 지정되면 파스칼 삼각형의 첫 번째 numRows를 반환합니다.
파스칼 삼각형에서, 각 수는 그 바로 위에 있는 두 수의 합이다.

https://leetcode.com/problems/pascals-triangle/

Given an integer numRows, return the first numRows of Pascal's triangle.
In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:

Example 1:

Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

Example 2:

Input: numRows = 1
Output: [[1]]

풀이

자바입니다.

  • 배열의 처음과 끝은 1 을 추가 합니다.
  • 중간의 값들은 윗 행의 두 수의 합을 추가합니다.
class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        for(int i=0;i<numRows;i++){
            List<Integer> data = new ArrayList<>();
            for(int j=0;j<i+1;j++){
                if(j==0) data.add(1);
                else if(j==i) data.add(1);
                else data.add(res.get(i-1).get(j)+res.get(i-1).get(j-1));
            }
            
            res.add(data);
        }
        return res;
    }
}
profile
안드로이드 개발자

0개의 댓글