首页 > 其他 > 详细

LeetCode Pascal's Triangle

时间:2016-01-05 18:40:20      阅读:315      评论:0      收藏:0      [点我收藏+]

原题链接在这里:https://leetcode.com/problems/pascals-triangle/

每一行cur都是前一行pre生成出来的,从第三行开始除了首末加"1"外还需要把pre的每两个相邻的和加到cur里。

Time Complexity: O(1 + 2 + 3 + 4... + n) = O(n^2). Space: O(1). 只需要二维数组来存储结果,不需要额外空间。

AC Java:

 1 public class Solution {
 2     public List<List<Integer>> generate(int numRows) {
 3         List<List<Integer>> res = new ArrayList<List<Integer>>();
 4         if(numRows == 0){
 5             return res;
 6         }
 7         
 8         List<Integer> pre = new ArrayList<Integer>();
 9         pre.add(1);
10         res.add(pre);
11         
12         for(int i = 0; i<numRows-1; i++){
13             List<Integer> cur = new ArrayList<Integer>();
14             cur.add(1); //首部加第一个1
15             for(int j = 1; j<pre.size(); j++){ 
16                 //第三行才会进入此循环
17                 cur.add(pre.get(j-1) + pre.get(j));
18             }
19             cur.add(1); //末尾加最后一个1
20             res.add(cur);
21             pre = cur;
22         }
23         return res;
24     }
25 }

 跟上一道Pascal‘s Triangle II

LeetCode Pascal's Triangle

原文:http://www.cnblogs.com/Dylan-Java-NYC/p/5103001.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!