Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, the result should be: [
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
Java Solution public ArrayList<ArrayList<Integer>> generate(int numRows) {
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
if (numRows <= 0)
return result;
ArrayList<Integer> pre = new ArrayList<Integer>();
pre.add(1);
result.add(pre);
for (int i = 2; i <= numRows; i++) {
ArrayList<Integer> cur = new ArrayList<Integer>();
cur.add(1); //first
for (int j = 0; j < pre.size() - 1; j++) {
cur.add(pre.get(j) + pre.get(j + 1)); //middle
}
cur.add(1);//last
result.add(cur);
pre = cur;
}
return result;
}
自己写的
public class Solution {
public List<List<int>> Generate(int numRows) {
List<List<int>> ret=new List<List<int>>();
if(numRows==0)
{
return ret;
}
List<int> first=new List<int>();
first.Add(1);
ret.Add(first);
for(int i=2;i<=numRows;i++)
{
List<int> cur=new List<int>();
cur.Add(1);
for(int j=0;j<first.Count-1;j++)
{
cur.Add(first[j]+first[j+1]);
}
cur.Add(1);
ret.Add(cur);
first=cur;
}
return ret;
}
}
|
|