本文共 1003 字,大约阅读时间需要 3 分钟。
计算杨辉三角的第 n n n行,从 0 0 0开始计数。用两个list代表两行滚动递推即可。代码如下:
import java.util.ArrayList;import java.util.List;public class Solution { /** * @param rowIndex: a non-negative index * @return: the kth index row of the Pascal's triangle */ public ListgetRow(int rowIndex) { // write your code here List row1 = new ArrayList<>(), row2 = new ArrayList<>(); row1.add(1); row2.add(1); row2.add(1); if (rowIndex == 0) { return row1; } if (rowIndex == 1) { return row2; } for (int i = 0; i < rowIndex - 1; i++) { row1.add(0); for (int j = 1; j < row2.size(); j++) { row1.set(j, row2.get(j - 1) + row2.get(j)); } row1.add(1); List swap = row1; row1 = row2; row2 = swap; } return row2; }}
时空复杂度 O ( n ) O(n) O(n)。
转载地址:http://cqds.baihongyu.com/