Question:

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

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?