【Golang】LeetCode 118. 杨辉三角

118. 杨辉三角

题目描述

思路

只要在中学阶段稍微接触过竞赛程度的稍微较难的数学题,那么一定听说过杨辉三角。其实对于计算机科班的同学,在本科学习基础语言的时候大概率在多维数组、动态规划基础等部分接触过杨辉三角。

这道题目也与杨辉三角相关,那就是基于给定的行数,构建出一个杨辉三角。

思路其实也很简单,按照要求构建即可,这是一道披着模拟外衣的动态规划问题。但是需要注意的是,要求返回的答案其实是一个多维的vector,也就是多维数组的第一个元素只有一维,第二行有二维,依此类推。

针对 Golang 而言,我们通过make([][]int, numRows)得到的序列,其实是一个元素是序列的序列,其中每个元素还没有被初始化,因此默认是 Golang 的零值,也就是空的应该指向整型序列的指针,我们需要显式地对每一行进行初始化,也就是使用make([]int, i + 1)。在初始化的过程中,我们可以显式地对这一行的第一个数和最后一个数进行初始化,从而方便在第二次遍历时直接从上到下对杨辉三角按规则进行维护。

Golang 题解

go 复制代码
func generate(numRows int) [][]int {
    ans := make([][]int, numRows)
    for i := 0; i < numRows; i ++ {
        ans[i] = make([]int, i + 1)
        ans[i][0], ans[i][i] = 1, 1
    }

    for i := 2; i < numRows; i ++ {
        for j := 1; j < i; j ++ {
            ans[i][j] = ans[i - 1][j - 1] + ans[i - 1][j]
        }
    }

    return ans
}
相关推荐
小程故事多_805 小时前
从A2C、TRPO、PPO到GRPO,强化学习策略梯度算法完整演进与大模型落地实战解析
人工智能·算法
2601_956121976 小时前
二分算法(知识点+题目)
c++·算法
AndrewHZ9 小时前
【LLM技术全景】阶段总结:技术原理篇核心知识回顾
人工智能·深度学习·算法·语言模型·大模型·llm·芯片开发
小星星闪亮登场10 小时前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
冻柠檬飞冰走茶10 小时前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法
玖玥拾11 小时前
LeetCode 88 合并两个有序数组
算法·leetcode
数据皮皮侠AI11 小时前
上市公司数字供应链金融指数(2010-2024)
大数据·人工智能·算法
小程故事多_8011 小时前
用GRPO算法重塑多智能体系统,从原理落地到复杂任务规划实战
人工智能·算法
Hi李耶12 小时前
【LeetCode】541.反转字符串 II
算法·leetcode·职场和发展
shylyly_12 小时前
104.二叉树的最大深度
数据结构·算法·104.二叉树的最大深度