分享

118 DIY LeetCode – Pascal’s Triangle (Java)

 雪柳花明 2016-10-04

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;
    }
}




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约