zoukankan      html  css  js  c++  java
  • LeetCode: Pascal's Triangle I && II

    Title:

    Given numRows, generate the first numRows of Pascal's triangle.

    For example, given numRows = 5,
    Return

    [
         [1],
        [1,1],
       [1,2,1],
      [1,3,3,1],
     [1,4,6,4,1]
    ]

    递归:
    class Solution {
    public:
        vector<vector<int> > results;
        vector<vector<int>> generate(int numRows) {
            if (numRows < 1)
                return results;
            maker(numRows);
            return results;
        }
        
        void maker(int numRows){
            vector<int> cur;
            cur.push_back(1);
            if (numRows == 2){
                maker(numRows-1);
                cur.push_back(1);
            }
            else if (numRows > 2){
                maker(numRows-1);
                vector<int> pre = results[numRows-2];
                for (int i = 0 ; i < pre.size()-1; i++){
                    cur.push_back(pre[i]+pre[i+1]);
                }
                cur.push_back(1);
            }
            results.push_back(cur);
        }
    };

    非递归
    class Solution {
    public:
        vector<vector<int> > results;
        vector<vector<int>> generate(int numRows) {
            if (numRows < 1)
                return results;
            vector<int> result;
            result.push_back(1);
            results.push_back(result);
            for (int i = 2; i <= numRows; i++){
                vector<int> pre = results[i-2];
                vector<int> cur;
                cur.push_back(1);
                for (int j = 0; j < pre.size()-1; j++){
                    cur.push_back(pre[j]+pre[j+1]);
                }
                cur.push_back(1);
                results.push_back(cur);
            }
            return results;
        }
    };

    Title:

    Given an index k, return the kth row of the Pascal's triangle.

    For example, given k = 3,
    Return [1,3,3,1].

    思路:使用滚动数组

    class Solution {
    public:
        vector<int> getRow(int rowIndex) {
            vector<int> result;
            if (rowIndex < 0)
                return result;
         
            result.push_back(1);
        
            for (int i = 0; i < rowIndex ; i++){
                vector<int> cur;
                cur.push_back(1);
                for (int j = 0 ; j < result.size()-1; j++){
                    cur.push_back(result[j]+result[j+1]);
                }
                cur.push_back(1);
                result = cur;
            }
            return result;
        }
    };
  • 相关阅读:
    多尺度目标检测 Multiscale Object Detection
    转置卷积Transposed Convolution
    Fine-Tuning微调原理
    eclipse中alt+/失效的几种解决方法
    错误笔记 对象为null时调用改对象的方法会报错
    JAVA -数据类型与表达式---变量与赋值
    错误笔记 3 变量值未初始化
    JAVA BigDecimal 用法
    JDBC url连接字符串错误1
    JDBC连接最新版Mysql数据库url设置
  • 原文地址:https://www.cnblogs.com/yxzfscg/p/4505429.html
Copyright © 2011-2022 走看看