public static ArrayList<ArrayList<Integer>> generate(int numRows) {
		ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
		if(numRows > 0){
			ArrayList<Integer> firstRow = new ArrayList<Integer>();
			firstRow.add(1);
			result.add(firstRow);
			
			int[] row = new int[numRows];
			row[0] = 1;
			for(int i=1; i<numRows; i++){
				row[i] = row[i-1];
				
				for(int j=i-1; j>0; j--){
					row[j] += row[j-1];
				}
				
				ArrayList<Integer> newRow = new ArrayList<Integer>();
				for(int j=0; j<=i; j++){
					newRow.add(row[j]);
				}
				result.add(newRow);
			}
		}
		
		return result;
	}