Leetcode 119) Pascal’s Triangle II
in Algorithms
class Solution {
public List<Integer> getRow(int rowIndex) {
if(rowIndex <=1){
List<Integer> num = new ArrayList<Integer>();
for(int i=0;i<rowIndex+1;i++){
num.add(1);
}
return num;
}
List<Integer> prev = new ArrayList<Integer>();
prev.add(1);
prev.add(1);
int hmm=1;
while(hmm<=rowIndex+1 ){
List<Integer> num = new ArrayList<Integer>();
for(int i=0;i<hmm;i++){
if(i==0){
num.add(1);
}else if(i==hmm-1){
num.add(1);
prev.clear();
for(int p : num) {
prev.add(p);
}
}else{
int val= prev.get(i) + prev.get(i-1);
num.add(val);
}
}
hmm++;
}
return prev;
}
}
다른 풀이
class Solution {
public List<Integer> getRow(int rowIndex) {
List<List<Integer>> result = new ArrayList<>();
result.add(Collections.singletonList(1));
for (int i = 1; i < rowIndex + 1; i++) {
List<Integer> ans = new ArrayList<>();
ans.add(1);
List<Integer> prev = result.get(i - 1);
for (int j = 1; j < i; j++) {
ans.add(prev.get(j - 1) + prev.get(j));
}
ans.add(1);
result.add(ans);
}
return result.get(rowIndex);
}
}