您的位置:首页 > 职场人生

LeetCode 118 Pascal's Triangle

2014-08-06 22:40 381 查看
题目

Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,

Return
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]


思路

1 可以看到每层都与上面一层有关系,所以用迭代就可以完成

2 难点在于每层的第一个和最后一个为1的怎么处理。可以直接在循环中加判断,这是最方便的。

代码

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> pre = new ArrayList();
pre.add(1);
ans.add(new ArrayList<Integer>(pre));
for(int currow=2;currow<=numRows;currow++){
ArrayList<Integer> temp = new ArrayList<Integer>();
for(int i=0;i<currow;i++){
if(i==0||i==currow-1){
temp.add(1);
}
else{
temp.add(pre.get(i-1)+pre.get(i));
}
}
pre = temp;
ans.add(new ArrayList<Integer>(temp));
}
return ans;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 面试笔试