package com.fishercoder.solutions;
import java.util.*;

/**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 class _118 {

    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result = new ArrayList();
        if(numRows < 1) return result;
        List<Integer> row = new ArrayList();
        row.add(1);
        result.add(row);
        for(int i = 1; i < numRows; i++){
            List<Integer> newRow = new ArrayList();
            newRow.add(1);
            List<Integer> lastRow = result.get(i-1);
            for(int j = 1; j < lastRow.size(); j++){
                newRow.add(lastRow.get(j-1) + lastRow.get(j));
            }
            newRow.add(1);
            result.add(newRow);
        }
        return result;
    }

    public static void main(String...strings){
        int numRows = 2;
        generate(numRows);
    }
}

@@ -52,16 +52,46 @@
 .*;%0A%0A/**
+%0A * 118. Pascal's Triangle%0A * 
 Given nu
@@ -253,16 +253,19 @@
 ,4,1%5D%0A %5D
+%0A%0A 
 */%0Apubli
@@ -291,23 +291,16 @@
  public 
-static 
 List%3CLis
@@ -402,126 +402,18 @@
    i
-f(numRows %3C 1) return result;%0A        List%3CInteger%3E row = new ArrayList();%0A        row.add(1);%0A        result.add(row)
+nt len = 1
 ;%0A  
@@ -417,24 +417,25 @@
 %0A        for
+ 
 (int i = 1; 
@@ -431,17 +431,17 @@
 int i = 
-1
+0
 ; i %3C nu
@@ -451,16 +451,17 @@
 ws; i++)
+ 
 %7B%0A      
@@ -480,20 +480,17 @@
 nteger%3E 
-newR
+r
 ow = new
@@ -492,32 +492,35 @@
 = new ArrayList(
+len
 );%0A            n
@@ -510,36 +510,33 @@
 n);%0A            
-newR
+r
 ow.add(1);%0A     
@@ -522,32 +522,61 @@
     row.add(1);%0A
+            if (i %3E 0) %7B%0A    
             List
@@ -607,17 +607,19 @@
 lt.get(i
--
+ - 
 1);%0A    
@@ -626,19 +626,24 @@
         
+   
+ 
 for
+ 
 (int j =
@@ -649,16 +649,56 @@
 = 1; j %3C
+ len; j++) %7B%0A                    if (j %3C
  lastRow
@@ -704,22 +704,18 @@
 w.size()
-; j++
 )
+ 
 %7B%0A      
@@ -720,28 +720,33 @@
             
-newR
+        r
 ow.add(lastR
@@ -753,17 +753,19 @@
 ow.get(j
--
+ - 
 1) + las
@@ -778,16 +778,24 @@
 et(j));%0A
+        
         
@@ -816,55 +816,46 @@
     
-newRow.add(1);%0A            result.add(newRow);%0A
+    %7D%0A                row.add(1);%0A    
     
@@ -872,127 +872,79 @@
     
-return
+   
  result
+.add(row)
 ;%0A    
-%7D%0A%0A
     
-public static void main(String...strings)%7B%0A        int numRows = 2;%0A        generate(numRows)
+    len++;%0A        %7D%0A        return result
 ;%0A  

edit 118