Algorithm문제풀이: LeetCode의118Pascal's Triangle” 🧑‍🚀문제링크: 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]]   Constraints: * 1 <= numRows <= 30 여러분은 어떻게 접근하시고 또 해결 하셨는지 댓글로 알려주세요~~ * Github link로 남겨주셔도 좋아요!
콘텐츠를 더 읽고 싶다면?
원티드에 가입해 주세요.
로그인 후 모든 글을 볼 수 있습니다.
댓글 4

간단하게 이전 배열의 index-1 + index의 값을 더해서 풀었습니다 Swift 코드입니다. class Solution { func generate(_ numRows: Int) -> [[Int]] { var result: [[Int]] = [] for n in 0..<numRows { var temp = Array(repeating: 1, count: n+1) if n > 1 { for i in temp.indices { if i != 0, i != temp.count-1 { temp[i] = result[n-1][i-1]+result[n-1][i] } } } result.append(temp) } return result } }
답글 달기
Recursive solution const generate2 = (numRows, arr=[[1], [1, 1]]) => { if (numRows === 1) return [[1]] if (arr.length === numRows) return arr let midOfNewRow = [] const lastRow = arr[arr.length - 1] for (let i=0; i<lastRow.length-1; i++) { midOfNewRow.push(lastRow[i] + lastRow[i+1]) } const newRow = [1, ...midOfNewRow, 1] arr.push(newRow) return generate2(numRows, arr) };
답글 달기