递归, 还得是递归。 前面两行是固定的 (递归结束条件),从第三行开始(递归起始条件) , 求规模n (n大于3) 就是 求规模(n-1)append 当前行 (递归)。 当前行n等于前面一行 0 到 n-1 两两相加
class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<>(); if(numRows == 1) { result.add(Arrays.asList(1)); return result; } if(numRows == 2) { result.add(Arrays.asList(1)); result.add(Arrays.asList(1,1)); return result; } // start 3 List<List<Integer>> beforeRows = generate(numRows - 1); List<Integer> curRow = getCurRow(beforeRows); beforeRows.add(curRow); return beforeRows; } public List<Integer> getCurRow(List<List<Integer>> beforeRows){ // 取最后一行 计算当前行 List<Integer> line = beforeRows.get(beforeRows.size() -1); List<Integer> curRow = new ArrayList<>(); curRow.add(1); for (int i = 0;i < line.size() - 1; i++) { curRow.add(line.get(i) + line.get(i + 1)); } curRow.add(1); return curRow; } }