1. 程式人生 > >leetcode (Pascal's Triangle)

leetcode (Pascal's Triangle)

Title: Merge Stored Array    118

Difficulty:Easy

原題leetcode地址:https://leetcode.com/problems/pascals-triangle/

 

本題很簡單,需要注意的是List與ArrayList或者LinkedList的關係,同樣需要很清楚的瞭解到list的get方法。

1. 注意點見程式碼中的註釋,時間&空間複雜度如下:

時間複雜度:O(n^2),兩層for迴圈的遍歷。

空間複雜度:O(n^2),申請了list(list)的空間。

    /**
     * 楊輝三角
     * @param numRows
     * @return
     */
    public static List<List<Integer>> generate(int numRows) {

        List<List<Integer>> list = new ArrayList<>();

        for (int i = 0; i < numRows; i++) {
            List<Integer> l = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || i == j) {
                    l.add(1);
                }
                else {
                    l.add(list.get(i - 1).get(j - 1) + list.get(i - 1).get(j));
                }
            }
            list.add(l);
        }

        return list;

    }