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是个空向量?!

  • 相关阅读:
    P2523 [HAOI2011]Problem c
    P2518 [HAOI2010]计数
    P2513 [HAOI2009]逆序对数列
    P2519 [HAOI2011]problem a
    P5020 货币系统
    P2580 于是他错误的点名开始了(Trie)
    P3805 【模板】manacher算法
    基础
    白兔的字符串(hash入门)
    ACM的分类训练题集(转载)
  • 原文地址:https://www.cnblogs.com/ketchups-notes/p/4453427.html
Copyright © 2011-2022 走看看