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%的用户
  • 相关阅读:
    Head first javascript(七)
    Python Fundamental for Django
    Head first javascript(六)
    Head first javascript(五)
    Head first javascript(四)
    Head first javascript(三)
    Head first javascript(二)
    Head first javascript(一)
    Sicily 1090. Highways 解题报告
    Python GUI programming(tkinter)
  • 原文地址:https://www.cnblogs.com/pipi-rtq/p/13528894.html
Copyright © 2011-2022 走看看