面试:数组:三角形
2016-05-18 17:12
337 查看
题目
给定一个正整数n, 产生Pascal三角形的前n行算法
每行首位是1中间元素是上一行相邻两个元素的和。
import java.util.*; public class Solution{ public ArrayList<ArrayList<Integer> > pascalTriangle(int n){ ArrayList<ArrayList<Integer> > res=new ArrayList<ArrayList<Integer>> (); if(n<1) return res; //初始化第一行 ArrayList<Integer> row1=new ArrayList<Integer>(); row1.add(1); res.add(row1); if(n==1) return res; for(int i=1;i<n;++i){ ArrayList<Integer> row =new ArrayList<Integer>(); row.add(1); for(int j=1;j<i;++j){ //获取上一行相邻两个元素的和 row.add(j,res.get(i-1).get(j-1)+res.get(i-1).get(j)); } row.add(1); res.add(row); } return res; } }