zoukankan      html  css  js  c++  java
  • OJ练习28——T118 Pascal's Triangle

    打印杨辉三角:

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

    输入打印的行数,返回vector<vector<int> >类型。

    【思路】

    1.我的思路是,先分配vector的空间,用resize,再用下标访问[i]。

    2.别人的思路,每行都是一个新vector<int> cur,赋值后push_back到ret。

    【other codes】

    vector<vector<int> > generate(int numRows) {
            int i, j;
            for(i=0; i<numRows; i++)
            {
                vector<int> cur;
                if(i==0)
                    cur.push_back(1);
                else{
                for(j=0; j<=i; j++)
                {
                    if(j==0||j==i)
                        cur.push_back(1);
                    else{
                        int ans=ret[i-1][j-1]+ret[i-1][j];
                        cur.push_back(ans);
                    }
                }
                }
                ret.push_back(cur);
                
            }
            return ret;
        }

    【my code】

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

    【评价】

    一开始总是不能通过,显示最后一个执行的测试是{0},

    加上if(numRows==0)        return ret;这句话就OK了,应该考虑到不合法的情况,这样返回的ret是个空向量?!

  • 相关阅读:
    #define #undef
    ps
    Find–atime –ctime –mtime的用法与区别总结
    redis
    linux mutex
    private继承
    boost::noncopyable介绍
    Makefile 中:= ?= += =的区别
    linux Tar 命令参数详解
    Ubuntu14.04安装CMake3.0.2
  • 原文地址:https://www.cnblogs.com/ketchups-notes/p/4453427.html
Copyright © 2011-2022 走看看