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

力扣118.杨辉三角

时间:2024-03-03 10:13:19浏览次数:16  
标签:numRows int 力扣 var 杨辉三角 118

题目:

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。

杨辉三角

实现方法:

从第三行开始,通过循环,依次求取上一行相邻两数的和,添加到结果里。

func generate(numRows int) [][]int {
	var r [][]int
	for i := 0; i < numRows; i++ {
		var p []int
		if i < 2 {
			for j := 0; j <= i; j++ {
				p = append(p, 1)
			}
			r = append(r, p)
		} else {
			p = append(p, 1)
			for j := 1; j <= i-1; j++ {
				p = append(p, r[i-1][j-1]+r[i-1][j])
			}
			p = append(p, 1)
			r = append(r, p)
		}
	}
	return r

}

标签:numRows,int,力扣,var,杨辉三角,118
From: https://www.cnblogs.com/tjhzdsa/p/18049625

相关文章

  • 洛谷题单指南-二分查找与二分答案-P1182 数列分段 Section II
    原题链接:https://www.luogu.com.cn/problem/P1182题意解读:每段和的最大值越小,则分段数就越多,因此可以通过给定每段和的最大值,将分段数划分为两类:<=M,>M,对每段和的最大值进行二分即可。解题思路:二分的判定条件为,给定每段和的最大值,计算分段数,计算逻辑如下:依次遍历每一个数,求当前......
  • 【力扣】奇偶链表
    题目描述思路我想起了一位故人。。前面那道分隔链表的题,只需要把<x的条件改为位置的奇偶即可完全照搬过来,出题人偷懒了属于是。试着不抄代码重新写一遍:简单写了一下发现这道题不太适合用递归算法求解,因为结点在整个链表中的位置不太好确认,试着用双指针法写一下:classSolut......
  • 【力扣】反转链表II
    题目描述思路老样子,还是先用递归试试。在基本问题中,也就是left==rigth或者left+1==right时,直接将两个元素调换顺序即可。我突然发现代码随想录里好像讲过一个用双指针法反转链表的算法。那道题是把整个链表翻转,代码如下://双指针法classSolution{public:ListN......
  • cf1184a3-solution
    CF1184A3Solutionlink题意:给你两个长度为\(n\)的小写字符串\(s,t\)和一个\(m\),定义哈希函数\[h(s)=\left(\sum_{i=0}^{n-1}s_ir^i\right)\bmodp\]求构造\((p,r)\)且\(p\gem,r\in[2,p-1]\),使得\(h(s)=h(t)\)。\(n,m\le10^5\)。题目即求一个多项式\(f(x)=\sum_{......
  • cf1188e-solution
    CF1188ESolutionlink考虑\(x_i\)表示最后序列中每个数被操作的次数。显然我们可以假设\(\min\{x_i\}=0\)。仍然显然的是这样子的\(x\)序列与最后得到的序列一一对应,也就是说每个最终序列可以只能由一种\(x\)得到。那么就变成计数合法的\(x\)序列了。考虑\(x_i\)需......
  • 【力扣】分隔链表
    题目描述思路先想到的一个方法是快慢指针扫描小于x的结点,然后把这些节点插入到慢指针后面去,但是写着写着好像发现这个题也可以用递归来写,后面的若干个结点的子表和整个问题的性质是一样的。普通方法的代码如下://只是大致是这样,这个代码还有一些用例跑不过classSolution{p......
  • 【力扣】删除排序链表中的重复元素II
    题目描述思路这些链表的有序性使这些操作都不难写。前面在数组的题目里写过跳过重复元素的算法,这个和那个类似,用快慢指针写,但是由于这个是删除重复元素,所以我用了两个相邻的慢指针,左边的慢指针其实是为了保存真正的慢指针的上一个位置。代码如下:classSolution{public:......
  • 【力扣】旋转链表
    题目描述思路首先用双指针法向后移动,分别获取链表的最后一个结点和倒数第k的结点,再把这部分连接到链表的头部即可,这部分的操作并不难。但是实际这样写了之后就会发现,如果链表的长度小于k的话,这样的操作就是行不通的,需要对这种情况进行特殊处理。但是在处理过程中发现这个操作......
  • 【力扣刷题】合并两个有序链表
    题目描述分析这道题实际的解法是要通过递归来写,由于链表的特性:链表的任何一个子表都是链表。所以很多链表的算法用递归来写会非常简便。这里先尝试着写一下非递归的算法,再写一遍递归的算法。非递归:classSolution{public://voidInsert(ListNode*node1,ListNode*n......
  • leedcode 杨辉三角-II
    自己写的:classSolution:defgetRow(self,rowIndex:int):#初始化一个列表以存储帕斯卡三角形的行li=[]#前两行是预定义的li.append([1])li.append([1,1])#rowIndex为0和1的基本情况ifrowIndex......