zoukankan      html  css  js  c++  java
  • (leetcode题解)Pascal's Triangle

    Pascal's Triangle 

    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]
    ]

    题意实现一个杨辉三角。

    这道题只要注意了边界条件应该很好实现出来,C++实现如下

        vector<vector<int>> generate(int numRows) {
            vector<vector<int>> res;
            res.resize(numRows);
            for(int i=0;i<numRows;i++)
            {
                res[i].push_back(1);
                for(int j=1;j<i;j++)
                {
                    res[i].push_back(res[i-1][j-1]+res[i-1][j]);
                }
                if(i!=0)
                    res[i].push_back(1);
            }
            return res;
        }

    Pascal's Triangle II

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

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

    Note:
    Could you optimize your algorithm to use only O(k) extra space?

    题意是给一个k值,返回杨辉三角的第k+1行,要求空间复杂度是O(k)。

    这道题的其实本质与上一道一样求杨辉三角,申请一个空间保存上一行的值即可,C++实现如下:

    vector<int> getRow(int rowIndex) {
            vector<int> res,temp;
            res.resize(rowIndex+1);
            for(int i=0;i<rowIndex+1;i++)
            {
                res[0]=1;
                for(int j=1;j<i;j++)
                {
                    res[j]=temp[j-1]+temp[j];
                }
                if(i!=0)
                    res[i]=1;
                temp=res;
            }
            return res;
        }
  • 相关阅读:
    EnrichPipeline文档
    454ITS数据按barcode和primer分类程序v1.0
    linux系统中,文件的三种特殊权限
    ITS简要分析流程(using Qiime)
    SegmentFault错误汇总
    PCoA主坐标分析
    PCA主成份分析
    软件测试工程师面试题
    我的测试团队管理之道
    如何管理好测试团队
  • 原文地址:https://www.cnblogs.com/kiplove/p/6986598.html
Copyright © 2011-2022 走看看