https://oj.leetcode.com/problems/pascals-triangle-ii/
http://blog.csdn.net/linhuanmars/article/details/23311629
Public class solution { public list<integer> getrow (int rowindex) { // solution a: // return getrow_okspace (RowIndex); // solution b: return getrow_extralist (RowIndex); } ///////////////////////// Solution A: OKSpace // private List< Integer> getrow_okspace (Int rowindex) { if (rowindex < 0) return null; // calculates the value of each location directly, // but when you calculate the value for a single location, you need to iterate List<Integer> toReturn = new Arraylist<> (rowindex + 1); for (int i = 0 ; i <= rowindex ; i ++) { toreturn.add (Val ( Rowindex, i)); } return toReturn; } // Calculate the value of row r, index i. // row and index are&nBsp;0 based. // recursive private int val ( Int r, int i) { // out case if (i < 0 | | &NBSP;I&NBSP;>&NBSP;R) return 0 ; // first row if (r == 1) return 1; else return val (r - 1, i - 1) + val (r - 1, i); } ////////////////////// // solution b: extralist // public list<integer> getrow_extralist (Int rowindex) { if (rowindex < 0) return null; List<Integer> toReturn = Collections.singletonlist (1); for (int i = 0 ; i < rowindex ; i ++) { toreturn = getrow (ToReturn) ; } return Toreturn; }&nbSp; private list<integer> getrow (List<Integer> lastrow) { int len = lastrow.size () + 1; List<Integer> Toreturn = new arraylist<> (len); for (int i = 0 ; i < len ; i ++) { int a = i - 1 < 0 ? 0 : lastrow.get (i - 1); int b = i == len - 1 ? 0 : lastrow.get (i); toreturn.add (A&NBSP;+&NBSP;B); } return toreturn; }}
[leetcode]119 Pascal ' s Triangle II