문제 링크
요약
- 하라는대로 하면 된다.
최종
결과
- 그냥 이전 row를 보면서 새로운 row를 만들면 된다.
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ret = {{1}, {1, 1}};
if (numRows == 1) {
return {{1}};
}
for (int i = 3; i <= numRows; i++) {
vector<int> &last = ret.back();
vector<int> new_row(i, 1);
for (int j = 1; j < i - 1; j++) {
new_row[j] = last[j - 1] + last[j];
}
ret.push_back(new_row);
}
return ret;
}
};Go
결과
- 이전에 Go로 작성해둔게 있어서 옮겨버리기
func generate(numRows int) [][]int {
outp := make([][]int, numRows)
outp[0] = []int{1}
for i := 1; i < numRows; i++ {
level := make([]int, i + 1)
level[0] = 1
level[i] = 1
for j := 1; j < i; j++ {
level[j] = outp[i - 1][j - 1] + outp[i - 1][j]
}
outp[i] = level
}
return outp
}
