pascal’s triangle i, ii


Pascal’s Triangle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> ans = new ArrayList<List<Integer>>();
if (numRows == 0)
return ans;
List<Integer> parent = new ArrayList<Integer>();
parent.add(1);
ans.add(new ArrayList<Integer>(parent));
for (int i = 1; i < numRows; ++i) {
List<Integer> children = new ArrayList<Integer>(i + 1);
for (int j = 0; j < i + 1; ++j)
children.add(1);
for (int j = 1; j < parent.size(); ++j) {
children.set(j, parent.get(j) + parent.get(j-1));
}
parent = children;
ans.add(new ArrayList<Integer>(parent));
}
return ans;
}

Pascal’s Triangle II
这题恶心人的地方在于,k-th竟然 k从0开始计数的。wtf!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public List<Integer> (int rowIndex) {
List<Integer> ans = new ArrayList<Integer>();
ans.add(1);
if (rowIndex == 0)
return ans;
for (int i = 1; i <= rowIndex; ++i) {
List<Integer> children = new ArrayList<Integer>(i + 1);
for (int j = 0; j < i + 1; ++j)
children.add(1);
for (int j = 1; j < ans.size(); ++j) {
children.set(j, ans.get(j) + ans.get(j-1));
}
ans = children;
}
return ans;
}