public ArrayList<ArrayList<Integer>> generate(int numRows) {
    	ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>();
    	if (numRows == 0)
    		return ret;

    	for (int i = 0; i < numRows; i++)
    	{
    		ArrayList<Integer> row = new ArrayList<Integer>();
    		for (int j = 0; j <= i; j++)
    		{
    			if (j == 0 || j == i)
    				row.add(1);
    			else
    				row.add(ret.get(i - 1).get(j - 1) + ret.get(i - 1).get(j));
    		}
    		ret.add(row);
    	}
    	
    	return ret;
    }