链接:https://www.lanqiao.cn/problems/594/learning/?is_contest=true
思路:
**1.**采用列表储存数据,重点在数据的实现上,想到把蛇形数列:
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …
…
看成三角形,按行储存。
**2.*思考题目所求第n行n列的数与列表的关系:就是第(2(n-1)-1)行(奇数行)的中位数
代码:
import collections
zong=collections.deque()
num=0
for i in range(41):
zong.append([])
for j in range(i+1):
num+=1
zong[i].append(num) #将蛇形矩阵看成三角,每行为单元存放
for i in range(41):
if len(zong[i])%2==0:
zong[i]=zong[i][::-1] #第偶数行的数字反向,
#此时列表数据与蛇形列表相同
print(zong[38][19]) #题目中第n行n列的数字就是第(2*(n-1)-1)行(奇数行)的中位数
#结果:761
**总结:**代码实现并不难,重点在算法的技巧。