LeetCode(118) Pascal's Triangle (Java)

來源:互聯網
上載者:User

標籤:arrays

題目如下:

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


My Code:

// 225mspublic class Solution {    public List<List<Integer>> generate(int numRows) {                        //ERROR1: List is abstract; cannot be instantiated        //List<List<Integer>> lists = new List<List<Integer>> ();                //ERROR2: fail to ensure type safe        //http://stackoverflow.com/questions/5763750/why-we-cant-do-listparent-mylist-arraylistchild        //List<List<Integer>> lists = new ArrayList<List<Integer>> ();                List<List<Integer>> lists = new ArrayList<ArrayList<Integer>> ();        if (numRows <= 0) return lists;        List<Integer> list1 = new ArrayList<Integer> ();        list1.add(1);        lists.add(list1);        if (numRows == 1) return lists;        List<Integer> oldList = null;        for (int i = 2; i <=numRows; ++i) {            List<Integer> newList = new ArrayList<Integer> ();            newList.add(1);            newList.add(1);            for (int j = 1; j < i - 1; ++j) {                newList.add(j, oldList.get(j) + oldList.get(j - 1));            }            lists.add(newList);            oldList = newList;        }        return lists;    }}


小結分析:


1 上面的兩個錯誤,也是我正好不懂的關於java的文法的部分。


第一個錯誤,很好理解,抽象基類無法進行new的操作。


第二個錯誤,比較好玩, 搜到一個解釋,是這樣的:

假設這個寫法沒有錯誤,那麼可以寫成類似下面這個例子這樣的寫法:

ArrayList<Banana> bananas = new ArrayList<Banana>();List<Fruit> fruit = bananas;fruit.add(new Apple());Banana banana = bananas.get(0); //ERROR! not type safe<span style="white-space:pre"></span>

這將明顯是危險。That‘s clearly not type safe - you‘ve ended up with an apple in the collection of bananas.




LeetCode(118) Pascal's Triangle (Java)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.