iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++实现LeetCode(119.杨辉三角之二)
  • 246
分享到

C++实现LeetCode(119.杨辉三角之二)

2024-04-02 19:04:59 246人浏览 薄情痞子
摘要

[LeetCode] 119. Pascal's Triangle II 杨辉三角之二 Given a non-negative index k whe

[LeetCode] 119. Pascal's Triangle II 杨辉三角之二

Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle.

Note that the row index starts from 0.


In Pascal's triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 3
Output: [1,3,3,1]

Follow up:

Could you optimize your alGorithm to use only O(k) extra space?

杨辉三角想必大家并不陌生,应该最早出现在初高中的数学中,其实就是二项式系数的一种写法。

        1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1

杨辉三角形第n层(顶层称第0层,第1行,第n层即第 n+1 行,此处n为包含0在内的自然数)正好对应于二项式 \left(a+b\right)^{n} 展开的系数。例如第二层 1 2 1 是幂指数为2的二项式\left(a+b\right)^{2} 展开形式a^{2}+2ab+b^{2} 的系数。

由于题目有额外限制条件,程序只能使用 O(k) 的额外空间,那么这样就不能把每行都算出来,而是要用其他的方法, 我最先考虑用的是第三条性质,算出每个组合数来生成第n行系数。本地调试输出前十行,没啥问题,拿到 OJ 上测试,程序在第 18 行跪了,中间有个系数不正确。那么问题出在哪了呢,仔细找找,原来出在计算组合数那里,由于算组合数时需要算连乘,而整型数 int 的数值范围只有 -32768 到 32768 之间,那么一旦n值过大,连乘肯定无法计算。而丧心病狂的 OJ 肯定会测试到成百上千行,所以这个方法不行。那么我们再来考虑利用第五条性质,除了第一个和最后一个数字之外,其他的数字都是上一行左右两个值之和。那么我们只需要两个 for 循环,除了第一个数为1之外,后面的数都是上一次循环的数值加上它前面位置的数值之和,不停地更新每一个位置的值,便可以得到第n行的数字,具体实现代码如下:


class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<int> res(rowIndex + 1);
        res[0] = 1;
        for (int i = 1; i <= rowIndex; ++i) {
            for (int j = i; j >= 1; --j) {
                res[j] += res[j - 1];
            }
        }
        return res;
    }
};

GitHub 同步地址:

https://github.com/grandyang/leetcode/issues/119

类似题目:

Pascal's Triangle

参考资料:

Https://leetcode.com/problems/pascals-triangle-ii/

https://leetcode.com/problems/pascals-triangle-ii/discuss/38420/Here-is-my-brief-O(k)-solution

https://leetcode.com/problems/pascals-triangle-ii/discuss/38478/My-accepted-java-solution-any-better-code

到此这篇关于c++实现LeetCode(119.杨辉三角之二)的文章就介绍到这了,更多相关C++实现杨辉三角之二内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++实现LeetCode(119.杨辉三角之二)

本文链接: https://www.lsjlt.com/news/131147.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++实现LeetCode(119.杨辉三角之二)
    [LeetCode] 119. Pascal's Triangle II 杨辉三角之二 Given a non-negative index k whe...
    99+
    2024-04-02
  • C++实现LeetCode(118.杨辉三角)
    [LeetCode] 118.Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate t...
    99+
    2024-04-02
  • C语言怎么实现杨辉三角
    本篇内容介绍了“C语言怎么实现杨辉三角”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!杨辉三角——C语言实现杨辉三角:在屏幕上打印杨辉三角。1...
    99+
    2023-06-22
  • Python实现:杨辉三角思路
     杨辉三角有以下几个特点 : 每个数等于它上方两数之和。 每行数字左右对称,由1开始逐渐变大。 第n行的数字有n项。 第n行数字和为2n-1。 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m...
    99+
    2023-01-30
    思路 杨辉三角 Python
  • Java语言实现杨辉三角
    一.提出问题。 使用二维数组打印出如下图的杨辉三角。 二.分析问题。 1.首先想要输出杨辉三角,就要找到它有什么规律? ①第n行有n个数字; ②每一行开始和结束的数字都为1; ③每一个数字都等于它的...
    99+
    2023-10-08
    java
  • 用JAVA实现杨辉三角实例
            这是我的第一篇文章,我的想法是把自己再学习的路上遇到的困难都给记录下来,一来是方便以后...
    99+
    2024-04-02
  • 怎么用PHP实现杨辉三角
    这篇文章主要讲解了“怎么用PHP实现杨辉三角”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用PHP实现杨辉三角”吧!代码如下 来自我的博客&n...
    99+
    2024-04-02
  • C语言如何实现打印杨辉三角
    这篇文章给大家分享的是有关C语言如何实现打印杨辉三角的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。题目描述打印杨辉三角(前N行)问题分析杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在...
    99+
    2023-06-22
  • C语言杨辉三角两种实现方法
    目录杨辉三角——C语言实现方法一:利用二维数组实现方法二(对方法一的改进): 总结杨辉三角——C语言实现 杨辉三角: 在屏幕上打印杨辉三角。 1 1 1 1 2 1 1 3 3 1...
    99+
    2024-04-02
  • 怎么用JAVA实现杨辉三角实例
    这篇文章给大家介绍怎么用JAVA实现杨辉三角实例,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。        题目是: &nbs...
    99+
    2023-06-26
  • C语言中杨氏矩阵与杨辉三角的实现方法
    一、杨氏矩阵 杨氏矩阵 1.杨氏矩阵的概念 在数学中,杨表(英语:Young tableau),又称杨氏矩阵。是对组合表示理论和舒伯特演算很有用的工具。它提供了一种方便的方式来描述...
    99+
    2024-04-02
  • C语言实现动态开辟存储杨辉三角
    目录问题引入解决方法思路分析C代码实现C++实现问题引入 杨辉三角相必大家并不陌生,第1行有1列、第二行有2列…第n行有n列,且每行行首和行尾的值都为1,其余的值为上一...
    99+
    2024-04-02
  • C/C++经典杨辉三角问题解决方案
    目录前言一、杨辉三角是什么二、C语言版实现步骤1.开辟动态二维数组2.初始化3.打印4.销毁二、C++版实现步骤1.实现类的成员变量2.实现成员函数3.类的总体按理来说,杨辉三角是一...
    99+
    2023-02-01
    C++杨辉三角 C语言杨辉三角
  • C语言如何打印杨辉三角形
    小编给大家分享一下C语言如何打印杨辉三角形,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 题目描述杨辉三角形解题之前,我们先来了解一下杨辉三角形到底是什么?杨...
    99+
    2023-06-29
  • 怎么在C语言中实现一个杨氏矩阵与杨辉三角
    这篇文章将为大家详细讲解有关怎么在C语言中实现一个杨氏矩阵与杨辉三角,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层...
    99+
    2023-06-15
  • java怎么用二维数组打印杨辉三角
    使用二维数组打印杨辉三角的Java代码如下:```javapublic class YangHuiTriangle {public ...
    99+
    2023-08-22
    java
  • C语言如何实现动态开辟存储杨辉三角
    本文小编为大家详细介绍“C语言如何实现动态开辟存储杨辉三角”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现动态开辟存储杨辉三角”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。问题引入杨辉三角相必大家并...
    99+
    2023-06-29
  • 批处理bat如何实现杨辉三角效果
    这篇文章主要介绍了批处理bat如何实现杨辉三角效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果图:代码如下:@echo off&color 0esetlocal...
    99+
    2023-06-08
  • C语言实现打印杨辉三角的方法详细(三种方法)
    目录题目描述问题分析1. 使用数组法(打印直角三角)2. 使用数组法(打印等腰三角)3. 使用公式法(打印等腰三角)网上参考题目描述 打印杨辉三角(前N行) 问题分析 杨辉三角是中国...
    99+
    2024-04-02
  • C语言打印杨辉三角形的示例代码
    目录1. 题目描述2. 解题思路3. 动图演示4. 代码实现Step1Step2居中显示5. 完整代码6. 特性总结1. 题目描述 杨辉三角形 解题之前,我们先来了解一下杨辉三角形到...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作