# Leetcode Pascal's-Triangle #### 2022-06-12 --- ##### Data structures: #DS #array ##### Algorithms: #algorithm #recursion #iteration ##### Difficulty: #leetcode #coding_problem #difficulty-easy ##### Related topics: ##### Links: - [Link to problem](https://leetcode.com/problems/pascals-triangle/) - [Additional resources]() --- ### Problem 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: ![Pascal Triangle](https://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif) #### Examples **Example 1:** ```markdown Input: numRows = 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] ``` **Example 2:** ```markdown Input: numRows = 1 Output: [[1]] ``` #### Constraints - 1 <= numRows <= 30 ### Thoughts Very simple and straightforward problem. > [!summary] > answer[i][j] = answer[i - 1][j - 1] + answer[i - 1][j] I worked around special cases using the for loop in j: j = 1 and j < i. ### Solution ```cpp class Solution { public: vector> generate(int numRows) { vector> answer(numRows); for (int i = 0; i < numRows; i++) { // initialize sub-array answer[i] = vector(i + 1); answer[i][0] = 1; for (int j = 1; j < i; j++) { answer[i][j] = answer[i - 1][j] + answer[i - 1][j - 1]; } answer[i][i] = 1; } return answer; } }; ```