首页 > 其他分享 >力扣-118. 杨辉三角

力扣-118. 杨辉三角

时间:2024-04-25 22:11:37浏览次数:28  
标签:numRows int 复杂度 力扣 ans 杨辉三角 118

1.题目介绍

题目地址(118. 杨辉三角 - 力扣(LeetCode))

https://leetcode.cn/problems/pascals-triangle/

题目描述

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

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

 

示例 1:

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

示例 2:

输入: numRows = 1
输出: [[1]]

 

提示:

  • 1 <= numRows <= 30

2.题解

2.1 数学方式

思路

代码

这里可以简化一下,由于对称性,只要计算前一半即可!

  • 语言支持:C++

C++ Code:


class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> ans(numRows);
        for(int i = 0; i < numRows; i++){
            ans[i].resize(i+1);
            ans[i][0] = ans[i][i] = 1; // 加上首尾(并不是从上一层相加得到的)一共i+1个, 下标从 0 -> i
            for(int j = 1; j <= i / 2; j++){
                ans[i][j] = ans[i-1][j] + ans[i-1][j-1];
                ans[i][i-j] = ans[i][j];
            }
        }
        return ans;
    }
};

复杂度分析

令 n 为数组长度。

  • 时间复杂度:\(O(n)\)
  • 空间复杂度:\(O(n)\)

标签:numRows,int,复杂度,力扣,ans,杨辉三角,118
From: https://www.cnblogs.com/trmbh12/p/18158733

相关文章

  • 力扣-442. 数组中重复的数据
    1.题目介绍题目地址(442.数组中重复的数据-力扣(LeetCode))https://leetcode.cn/problems/find-all-duplicates-in-an-array/题目描述给你一个长度为n的整数数组nums,其中nums的所有整数都在范围[1,n]内,且每个整数出现一次或两次。请你找出所有出现两次的整数,......
  • 力扣-448. 找到所有数组中消失的数字
    1.题目题目地址(448.找到所有数组中消失的数字-力扣(LeetCode))https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array/题目描述给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,......
  • 力扣-645. 错误的集合
    1.题目介绍题目地址(645.错误的集合-力扣(LeetCode))https://leetcode.cn/problems/set-mismatch/题目描述集合s包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复。......
  • 力扣-697. 数组的度
    1.题目介绍题目地址(697.数组的度-力扣(LeetCode))https://leetcode.cn/problems/degree-of-an-array/题目描述给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在nums中找到与 nums 拥有相同大小的度的最短......
  • 力扣-396. 旋转函数
    1.题目介绍题目地址(396.旋转函数-力扣(LeetCode))https://leetcode.cn/problems/rotate-function/题目描述给定一个长度为n的整数数组 nums 。假设 arrk 是数组 nums 顺时针旋转k个位置后的数组,我们定义 nums 的旋转函数  F 为:F(k)=0*arrk[0]+1*......
  • 力扣-189. 轮转数组
    1.题目题目地址(189.轮转数组-力扣(LeetCode))https://leetcode.cn/problems/rotate-array/题目描述给定一个整数数组nums,将数组中的元素向右轮转k 个位置,其中 k 是非负数。 示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步......
  • 力扣-414. 第三大的数
    1.题目题目地址(414.第三大的数-力扣(LeetCode))https://leetcode.cn/problems/third-maximum-number/题目描述给你一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。 示例1:输入:[3,2,1]输出:1解释:第三大的数是1。示例2:输入:[1,2]输出:2......
  • 力扣-495. 提莫攻击
    1.题目题目地址(495.提莫攻击-力扣(LeetCode))https://leetcode.cn/problems/teemo-attacking/题目描述在《英雄联盟》的世界中,有一个叫“提莫”的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration秒。正......
  • 杨辉三角形
    用C语言实现打印出10行杨辉三角形111121133114641151010511、第一列都为1,第x行第x列为12、第几行就有几个元素3、从第三行开始,第二列的元素等于第二行的第一列元素+第二列元素之和(排除从第三行开始的首和尾元素)#include<stdio.h>intmain(){in......
  • 力扣-665. 非递减数列
    1.题目题目地址(665.非递减数列-力扣(LeetCode))https://leetcode.cn/problems/non-decreasing-array/题目描述给你一个长度为 n 的整数数组 nums ,请你判断在最多改变 1个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任......