资讯专栏INFORMATION COLUMN

Leetcode 118&119 Pascal's Triangle

laznrbfe / 1819人阅读

摘要:首先要对特殊情况进行处理小于等于的情况。然后循环,每一次产生一个,个有个元素,每个的第一个和第个元素都是对于中间的那些元素,则找出前一个的对应位置的两个元素加和即可得到。这一道题只要求返回形式的一行的元素即可。

118 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]
理解

首先我们要先理解一下pascal三角形(杨辉三角),每行端点与结尾的数为1,每个数等于它上方两数之和。

解法的实现还是比较简单的。首先要对特殊情况进行处理(numRows小于等于0的情况)。然后循环,每一次产生一个List,i个list有i个元素,每个list的第一个和第i个元素都是1.

对于list中间的那些元素,则找出前一个list的对应位置的两个元素加和即可得到。

解法
    public List> generate(int numRows) {
        List> triangle = new ArrayList>();
        if (numRows <=0){
            return triangle;
        }
        for (int i=0; i row =  new ArrayList();
            for (int j=0; j
119 Pascal"s Triangle2
题目详情
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?
理解

这道题和118一样,都是基于帕斯卡三角形的。这一道题只要求返回List形式的、一行的元素即可。

这道题有个额外的要求就是只消耗O(k)的额外空间

于是我们只在方法最开始声明一个list,以后每一行的结果都保存在这个list中,同时根据list中元素的值计算出的下一行的元素覆盖掉计算过的元素。

解法
    public List getRow(int rowIndex) {
        List list = new ArrayList();
        
        if(rowIndex < 0 ){
            return list;
        }
        
        for(int i=0;i < rowIndex+1;i++){
            list.add(0,1);
            
            for(int j=1;j           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68245.html

相关文章

  • leetcode # 118:Pascal&#039;s Triangle 杨辉三角

    摘要:杨辉三角给定一个非负整数,生成杨辉三角的前行。在杨辉三角中,每个数是它左上方和右上方的数的和。另外可以在内层循环加判断在不等于时才加上,这样可省略代码段,但是这个会在每次进入第一次循环后判断一次。本着减少资源消耗的原则,应当提到外面。 118:Pascals Triangle 杨辉三角 Given a non-negative integer numRows, generate the...

    CKJOKER 评论0 收藏0
  • leetcode # 118:Pascal&#039;s Triangle 杨辉三角

    摘要:杨辉三角给定一个非负整数,生成杨辉三角的前行。在杨辉三角中,每个数是它左上方和右上方的数的和。另外可以在内层循环加判断在不等于时才加上,这样可省略代码段,但是这个会在每次进入第一次循环后判断一次。本着减少资源消耗的原则,应当提到外面。 118:Pascals Triangle 杨辉三角 Given a non-negative integer numRows, generate the...

    gggggggbong 评论0 收藏0
  • [LeetCode] 118. Pascal&#039;s Triangle

    Problem Given a non-negative integer numRows, generate the first numRows of Pascals triangle. In Pascals triangle, each number is the sum of the two numbers directly above it. Example: Input: 5Output:...

    sunnyxd 评论0 收藏0
  • LeetCode 118:杨辉三角 II Pascal&#039;s Triangle II

    摘要:公众号爱写作者爱写给定一个非负索引,其中,返回杨辉三角的第行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例输入输出进阶你可以优化你的算法到空间复杂度吗解题思路和之前写的那篇号杨辉三角基本类似。 公众号:爱写bug(ID:icodebugs)作者:爱写bug 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 Given a non-negative index...

    KaltZK 评论0 收藏0
  • LeetCode 118:杨辉三角 II Pascal&#039;s Triangle II

    摘要:公众号爱写作者爱写给定一个非负索引,其中,返回杨辉三角的第行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例输入输出进阶你可以优化你的算法到空间复杂度吗解题思路和之前写的那篇号杨辉三角基本类似。 公众号:爱写bug(ID:icodebugs)作者:爱写bug 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 Given a non-negative index...

    xiaodao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<