public static List<List<Integer>> generate(int numRows) {//accepted
        List<List<Integer>> ret = new ArrayList<List<Integer>>();
        if (numRows == 0) {
            return ret;
        }
        for (int i = 0; i < numRows; ++i) {
            ArrayList<Integer> temp = new ArrayList<Integer>();
            if (i == 0) {
                temp.add(1);
            }
            else if (i == 1) {
                temp.add(1);
                temp.add(1);
            }
            else {
                List<Integer> pre = ret.get(i-1);
                temp.add(1);
                for (int j = 0; j < pre.size()-1; ++j) {
                    temp.add(pre.get(j) + pre.get(j+1));
                }
                temp.add(1);
            }
            ret.add(temp);
        }
        return ret;
    }