[LeetCode]--118. Pascal's Triangle

简介: 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]]我是用数组做的,在草稿纸上稍微画一画应该就能找

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]
]

我是用数组做的,在草稿纸上稍微画一画应该就能找到数组下标的规律。

public List<List<Integer>> generate(int numRows) {
        List<Integer> list = new ArrayList<Integer>();
        List<List<Integer>> resultList = new ArrayList<List<Integer>>();
        int[][] temp = new int[numRows][numRows];
        for (int i = 0; i < numRows; i++) {
            temp[i][0] = 1;
            temp[i][i] = 1;
            for (int j = 0; j <= i; j++) {
                if (j < i && i > 1 && j > 0)
                    temp[i][j] = temp[i - 1][j - 1] + temp[i - 1][j];
                list.add(temp[i][j]);
            }
            resultList.add(list);
            list = new ArrayList<Integer>();
        }
        return resultList;
    }

看了网上的解答:

public ArrayList<ArrayList<Integer>> generate(int numRows) {
        ArrayList<ArrayList<Integer>> rst = new ArrayList<ArrayList<Integer>>();
        if (numRows == 0) {
            return rst;
        }

        ArrayList<Integer> first = new ArrayList<Integer>();
        first.add(0, 1);
        rst.add(first);

        for (int i = 1; i < numRows; i++) {
            ArrayList<Integer> tmp = new ArrayList<Integer>(i + 1);
            for (int j = 0; j < i + 1; j++){
                tmp.add(-1);
            }
            ArrayList<Integer> prev = rst.get(i - 1);
            tmp.set(0, prev.get(0));
            tmp.set(i, prev.get(i - 1));
            for (int j = 1; j < i; j++){
                tmp.set(j, prev.get(j - 1)+prev.get(j));
            }
            rst.add(tmp);
        }
        return rst;
    }

是不是还没有我的那个好,哈哈哈,一看就是三层for循环。

目录
相关文章
LeetCode 118:杨辉三角 II Pascal's Triangle II
公众号:爱写bug(ID:icodebugs)作者:爱写bug 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note that the row index starts from 0. 在杨辉三角中,每个数是它左上方和右上方的数的和。
886 0
Leetcode 118:Pascal's Triangle 杨辉三角
118:Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
955 0
[LeetCode]--119. Pascal&#39;s Triangle II
Given an index k, return the kth row of the Pascal’s triangle. For example, given k = 3, Return [1,3,3,1]. Note: Could you optimize your algorithm to use only O(k) extra space? public
1057 0
|
Java
LeetCode 118 Pascal's Triangle(帕斯卡三角形)(vector)
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50568461 翻译 给定一个行数字,生成它的帕斯卡三角形。
1020 0
|
算法 索引
LeetCode 119 Pascal's Triangle II(帕斯卡三角形II)(vector、数学公式)(*)
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50568802 翻译 给定一个索引K,返回帕斯卡三角形的第K行。
1121 0

热门文章

最新文章