zoukankan      html  css  js  c++  java
  • LeetCode c++-- 118.杨辉三角

    题目描述:

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

     

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

    示例:

    输入: 5
    输出:
    [
    [1],
    [1,1],
    [1,2,1],
    [1,3,3,1],
    [1,4,6,4,1]
    ]

    解题:

    class Solution {
    public:
        /*
        该题目的主要的考察点在于:
            如何使二维vector数组的行数组长度不同
        解决方法:
            1.开辟numRows行 1 列的二维数组,后续根据每行的数据数量进行扩张
            https://blog.csdn.net/u013040591/article/details/80329066
        */
       vector<vector<int>> generate(int numRows) {
            //初始化二维vector数组空间大小,并全部初始化为 0
            vector<vector<int> > A(numRows,vector<int>(1,1));
            //确定每行中数据的长度以及内部存储的数据,第一二行不需要进行处理
            for(int i = 1;i <numRows;i ++)
            {
                for( int j = 1;j < i;j ++)
                {
                    //计算左上角,上方的和插入
                    A[i].push_back(A[i-1][j-1]+A[i-1][j]);
                }
                //将每列的最后一个数插入到最后
                A[i].push_back(1); 
            }
            return A;
        }
    };
    //还需要进行加强对于vector等容器的学习
    执行用时:4 ms, 在所有 C++ 提交中击败了38.74%的用户
    内存消耗:6.6 MB, 在所有 C++ 提交中击败了50.93%的用户
     
    //2.另外一种使用resize()进行开辟空间的方法,相比上面第一个方法来效率更快
    
     /*vector<vector<int>> generate(int numRows) {
            //初始化二维vector数组空间大小,并全部初始化为 0
            vector<vector<int> > A(numRows,vector<int>(1,1));
            //确定每行中数据的长度以及内部存储的数据,第一二行不需要进行处理
            for(int i = 1;i <numRows;i ++)
            {
                A[i].resize(i+1);
                for( int j = 1;j < i;j ++)
                {
                    //计算左上角,上方的和赋值
                   A[i][j] = A[i-1][j-1]+A[i-1][j];
                }
                //将每列的最后一个数插入到最后
                A[i][i] = 1; 
            }
            return A;
        }
    };
    */
    执行用时:0 ms, 在所有 C++ 提交中击败了100%的用户
    内存消耗:6.7 MB, 在所有 C++ 提交中击败了34.67%的用户
  • 相关阅读:
    数据结构-第5章学习小结
    数据结构-第4章学习小结
    数据结构-第3章学习小结
    数据结构-第2章学习小结
    数据结构-第1章学习小结
    实验五 单元测试
    实验四 代码评审
    实验三 UML建模工具的安装和使用
    实验二 结对编程 (第二阶段)
    结对编程实验 第一阶段
  • 原文地址:https://www.cnblogs.com/pipi-rtq/p/13528894.html
Copyright © 2011-2022 走看看