릿코드(LEETCODE)
118. Pascal's Triangle
cepiloth
2020. 2. 14. 15:21
반응형
https://leetcode.com/problems/pascals-triangle
D 풀이
1 로 모두 다 채워 넣고 상위 요소에서 left, rigt 에 합으로 채우주는 방식으로 풀이
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> arr;
// 모든 원소를 1로 다 채움
for (int i = 1; i < numRows + 1; i++) {
vector<int> vi;
for (int j = 0; j < i; j++) {
vi.push_back(1);
}
arr.push_back(vi);
vi.clear();
}
// arr[0] = 1
// arr[1] = 1 1
// arr[2] = 1 arr[1-1][1-1]+arr[1-1][1] 1
for (int i = 2; i < numRows; i++) {
int size = arr[i].size();
for (int j = 1; j < size-1; j++) {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
return arr;
}
};
W 풀이
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int> > vv(numRows);
for (int i = 0; i < numRows; ++i) {
for (int j = 0; j <= i; ++j) {
if (j == 0 || j == i) {
vv[i].push_back(1);
continue;
}
int left = vv[i - 1][j - 1];
int right = vv[i - 1][j];
vv[i].push_back(left + right);
}
}
return vv;
}
};
반응형