您的位置:首页 > 编程语言 > Java开发

[LeetCode][Java] Pascal's Triangle

2015-07-24 14:39 429 查看

题目:

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外,其余元素都是由对应上一行的两个元素的和得到的。

AC代码:

<span style="font-family:Microsoft YaHei;font-size:12px;">public class Solution
{
public List<List<Integer>> generate(int numRows)
{
List<List<Integer>> finallist=new ArrayList<List<Integer>>();
if (numRows==0) return finallist;
else
{
for(int i=0;i<=numRows-1;i++)
{
finallist.add(i,getRow(i));
}
}
return finallist;
}
public static List<Integer> getRow(int rowIndex)
{
List<Integer> a=new ArrayList<Integer>();

for (int i=0;i<=rowIndex;i++)
{
Integer[] ta =new Integer[a.size()];
a.toArray(ta);
for(int j=0;j<i+1;j++)
{
if(j==i) a.add(j,1);
else if (j==0) a.set(j,1);
else
{
int temp=ta[j-1]+ta[j];
a.set(j,temp);
}
}
}
return a;
}
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: