杨辉三角的思路就是上一层的相邻两数相加得到下一层的数
那么可以使用两个队列来进行数的存储和计算
A队列的数两两相加导入B队列
基本思路(多层):首先初始化A队列,即杨辉三角顶层
接着设置两个参数L,R用于存储出队数字,再设一个参数T = L + R 用于计算下一层数字
实际上每次出队的数字仅给R
打印R,即打印本层的数字
由于杨辉三角下层第一个数 = 0 + 上层一个数,所以L初始总为0
那么T = L + R = 1就可以作为下一层的第一个数(入队Q2)
接着把R 赋予 L,再出队一个数给R
循环出队,赋予,相加,入队,实现本层数字的打印和下一层数字的计算、保存
这样当到最后一个数时,下层的最后一个数 = 上层的最后一个数 + 0
所以此时只设置 T = L
一层的计算结束后,我们需要将
我们以4层杨辉为例
1
1 1
1 2 1
1 3 3 1
初始化A队列 = [1]
A出队给 R, R = 1,打印R,第一层打印完成
T = L + R = 0 + 1 = 1,入队B,得到第二层第一个数
R赋给L ,接着计算下一个数,而下一个数已经是第二层的最后一个数,因此T = L = 1,入队B
此时 B队列 = [1, 1]
将B 队列 赋予A队列,重复上一步
A = [1, 1]
打印第二层
L = 0, R = 1, T &#