LeetCode Solutions
118. Pascal's Triangle
Time: $O(n^2)$ Space: $O(n^2)$
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans;
for (int i = 0; i < numRows; ++i)
ans.push_back(vector<int>(i + 1, 1));
for (int i = 2; i < numRows; ++i)
for (int j = 1; j < ans[i].size() - 1; ++j)
ans[i][j] = ans[i - 1][j - 1] + ans[i - 1][j];
return ans;
}
};
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> ans = new ArrayList<>();
for (int i = 0; i < numRows; ++i) {
Integer[] temp = new Integer[i + 1];
Arrays.fill(temp, 1);
ans.add(Arrays.asList(temp));
}
for (int i = 2; i < numRows; ++i)
for (int j = 1; j < ans.get(i).size() - 1; ++j)
ans.get(i).set(j, ans.get(i - 1).get(j - 1) + ans.get(i - 1).get(j));
return ans;
}
}
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
ans = []
for i in range(numRows):
ans.append([1] * (i + 1))
for i in range(2, numRows):
for j in range(1, len(ans[i]) - 1):
ans[i][j] = ans[i - 1][j - 1] + ans[i - 1][j]
return ans