简单题。不过又出现了一次初始状态设置的错误,当numRows==0时所作的设置,numRows==1时也需要。但一开始放到if block里面去了。
public class Solution {
public ArrayList<ArrayList<Integer>> generate(int numRows) {
ArrayList<ArrayList<Integer>> ans = new ArrayList<ArrayList<Integer>>();
if (numRows == 0) return ans;
ArrayList<Integer> tmp = new ArrayList<Integer>();
tmp.add(1);
ans.add(tmp);
if (numRows == 1) {
return ans;
}
tmp = new ArrayList<Integer>();
tmp.add(1);
tmp.add(1);
ans.add(tmp);
if (numRows == 2) {
return ans;
}
for (int i = 2; i < numRows; i++) {
tmp = new ArrayList<Integer>();
ArrayList<Integer> last = ans.get(i-1);
tmp.add(1);
int half = i / 2;
for (int j = 1; j <= half; j++) {
tmp.add(last.get(j-1) + last.get(j));
}
for (int j = half+1; j <= i; j++) {
tmp.add(tmp.get(i-j));
}
ans.add(tmp);
}
return ans;
}
}