【Leetcode】119. Pascal's Triangle II

来源:互联网 发布:激光祛痘的危害 知乎 编辑:程序博客网 时间:2024/06/09 19:50

方法一:递归

思路:

(1)若rowIndex为0,则构造相应result并返回。

(2)否则,递归求前rowIndex-1行的结果res,再依次遍历res的最后一行,每相邻两个元素求和得到对应位置的数,在前后加上1后加入result。

public class Solution {    public List<Integer> getRow(int rowIndex) {        List<Integer> result = new  ArrayList<Integer>();            if (rowIndex == 0) {                result.add(1);              return result;          }          result.add(1);          List<Integer> res = getRow(rowIndex - 1);           int size = res.size();          for (int i = 0; i < size - 1; i++)               result.add(res.get(i) + res.get(i + 1));          result.add(1);           return result;      }}
Runtime:2ms


方法二:非递归

思路:

(1)先构造第0行的结果放入result。

(2)从第1行开始,依次求每一行的结果。前一行的每相邻两个元素求和得到当前行对应位置的数,在前后加上1后加入result。

public class Solution {    public List<Integer> getRow(int rowIndex) {        List<Integer> result = new  ArrayList<Integer>();            result.add(1);               for (int i = 0; i < rowIndex; i++) {            List<Integer> temp = new ArrayList<Integer>();            temp.add(1);            for (int j = 0; j < result.size() - 1; j++)                temp.add(result.get(j) + result.get(j + 1));            temp.add(1);            result = temp;        }        return result;      }}
Runtime:3ms
1 0
原创粉丝点击