题解 | #蛇形矩阵#

蛇形矩阵

http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

首先分析首行规律,首行每个数字和前一个数字的差值每次都增加1 即增量每迭代1次就加1

分析行之间差距 每一行取上一行第一位数字之外的元素,并对每个元素减去1即可

def get_first_line(count):
    arr, increase = [1], 2
    for i in range(1, count):
        arr.append(arr[i - 1] + increase)
        increase += 1
    return arr


def get_all_lines(arr):
    result = []
    # result.append(arr)
    count = len(arr)
    for i in range(count):
        result.append(arr)
        arr = [value - 1 for value in arr[1:]]
    return result


while True:
    try:
        arr1 = get_first_line(int(input()))
        res = get_all_lines(arr1)
        for x in res:
            for num in x:
                print(num, end=' ')
            print()
    except EOFError: break
全部评论
感谢大佬分析的规律,步骤非常清晰,适合我这菜鸟,一步一步拆开来演绎之后,终于懂了。谢谢!
点赞 回复 分享
发布于 2022-08-08 11:35
每行的数字有规律???
点赞 回复 分享
发布于 2022-03-05 13:58

相关推荐

点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
只有一个苍穹外卖外加正在看黑马点评,可以找小厂实习吗,还有我的简历有什么大问题吗
Java抽象小篮子:感觉有点熟悉,问题1是学历,2是没实习经历,3是专业技能写得太少太少了(怎么写可以看我置顶帖),4是仅这一个项目找实习不够看。拷打完毕,简历怎么写可以看我置顶帖子
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务