糖逗 发表于 2020-6-7 12:57:05

C++刷leetcode(119. 杨辉三角 II)【递归】

本帖最后由 糖逗 于 2020-6-7 13:24 编辑

题目描述:
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。



在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 3
输出:

class Solution {
public:
    void dfs(vector<int>& res, vector<int>& pre, int rowIndex, int cur){
      if(cur >= rowIndex){
            res = pre;
            return;
      }
      int left = 0, right = 1;
      res.push_back(1);
      for(int i = right; i < pre.size(); i++){
            res.push_back(pre + pre);
            left ++;
            right++;
      }
      res.push_back(1);
      pre = res;
      res = {};
      dfs(res, pre, rowIndex, cur+ 1);
    }
    vector<int> getRow(int rowIndex) {
      if(rowIndex == 0) return {1};
      if(rowIndex == 1) return {1, 1};
      vector<int> res;
      vector<int> pre = {1, 1};
      dfs(res, pre, rowIndex, 1);
      return res;
    }
};
页: [1]
查看完整版本: C++刷leetcode(119. 杨辉三角 II)【递归】