leetcode笔记 118. Pascal's Triangle &
leetcode刷题17天
118. Pascal’s Triangle
Example:
Input: 5
Output:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
代码:
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
for(int i = 1;i<=numRows;i++) {
List<Integer> temp = new ArrayList<Integer>();
List<Integer> lastRow = null;
if(res.size()>0)
lastRow = res.get(res.size()-1);
int j = 1;
while(j<=i) {
if(j==1||j==i) {
temp.add(1);
j++;
}
else{
for(int z=0; z<lastRow.size()-1; z++){
int val = lastRow.get(z)+lastRow.get(z+1);
temp.add(val);
}
j=j+lastRow.size()-1;
}
}
res.add(temp);
}
return res;
}
}
- Pascal’s Triangle II
Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal’s triangle.
Note that the row index starts from 0.
Example:
Input: 3
Output: [1,3,3,1]
代码:
class Solution {
public List<Integer> getRow(int rowIndex) {
List<Integer> res = new ArrayList<Integer>();
res.add(1);
if(rowIndex==0)
return res;
res.add(1);
if(rowIndex==1)
return res;
for(int i = 2;i<=rowIndex;i++) {
res.add(1);
for(int j=i-1;j>0;j--) {
int temp = res.get(j)+res.get(j-1);
res.set(j,temp);
}
}
return res;
}
}