[LeetCode],Pascal's Triangle, 解题报告

原创 2013年12月04日 00:41:13

题目

Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return




思路

典型的杨辉三角题目,说一下构造杨辉三角的思路:

每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一

AC代码

import java.util.*;

public class PascalTriangle {
    public static ArrayList<ArrayList<Integer>> generate(int numRows) {
        ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
        if (numRows < 1) {
            return result;
        }
        ArrayList<Integer> start = new ArrayList<Integer>();
        start.add(1);
        result.add(start);
        
        for (int i = 1; i < numRows; i ++) {
            ArrayList<Integer> pre = result.get(i - 1);
            ArrayList<Integer> cur = new ArrayList<Integer>();
            cur.add(1);
            
            for (int j = 1; j < i; j ++) {
                int tmp = pre.get(j - 1) + pre.get(j);
                cur.add(tmp);
            }
            
            cur.add(1);
            
            result.add(cur);
        }
        
        return result;
    }
    
    
    public static void main(String args[]) {
        int n;
        ArrayList<ArrayList<Integer>> list;
        Scanner cin = new Scanner(System.in);
        
        while (cin.hasNext()) {
            n = cin.nextInt();
            list = generate(n);
            
            for (int i = 0; i < list.size(); i ++) {
                for (int j = 0; j < list.get(i).size(); j ++) {
                    System.out.printf("%d ", list.get(i).get(j));
                }
                System.out.println();
            }
        }
        
        cin.close();
    }
}


后记

本来想再写一道LeetCode上题目再睡觉,但是突然LeetCode OJ访问速度超慢,我是用GAE翻墙的,按理说不应该出现这种情况啊,诡异!!
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【LeetCode】Pascal's Triangle & II 解题报告

杨辉三角,分别求前n行和第n行。 【求杨辉三角前n行】 Given numRows, generate the first numRows of Pascal's triangle. For e...
  • ljiabin
  • ljiabin
  • 2014年10月20日 17:45
  • 3060

LeetCode 119. Pascal's Triangle II

题目: Given an index k, return the kth row of the Pascal’s triangle.For example, given k = 3, Return...

【leetcode】Pascal's Triangle[java]

public class Solution { public List> generate(int numRows) { //打印前n行的list //由上一个list产...

leetcode:Pascal's Triangle II

题目地址:

《leetCode》: Pascal's Triangle

题目Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5, Ret...

LeetCode - 118. Pascal's Triangle

这道题目是有关三角形的题目,因此可能会涉及到二维数组的问题,在处理这样的三角形问题的时候,有一个比较好的方法就是将三角形当作半个矩阵来看,这样可以比较方便地理清元素下标之间的关系。比如题目中给出的例子...

LeetCode 118. Pascal's Triangle

题目很简单,输入一个数字n,返回一个n行的杨辉三角。解题思路也很简单,我们知道杨辉三角的第n+1行第m+1列的元素为c(n,m)=n!/[m!(n-m)!]。所以我们写个一个函数可以返回c(n,m),...

[leetcode]Pascal's Triangle II (杨辉三角形求输出第k行的值)

Pascal’s Triangle II Given an index k, return the kth row of the Pascal’s triangle.For example, gi...

Leetcode Pascal's Triangle II

下面程序空间效率O(k),使用了两个vector交替使用,因为只利用上一行就能填写下一行了。 因为只利用当前行两个数值的信息覆盖新填写的数列格也是可以的,所以只利用一个vector也是可以的。 Lee...

LeetCode Pascal's Triangle II

Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[LeetCode],Pascal's Triangle, 解题报告
举报原因:
原因补充:

(最多只允许输入30个字)