题解 | 球格模型(简单版)

球格模型(简单版)

https://www.nowcoder.com/practice/fada102a84ec459ea93e3db4918c0f04

while True:
    try:
        n, m, k = map(int, input().split())
        if k < max(n, m):
            print(-1)
        else:
            # 创建一个全是0的二维数组
            lst = [[0 for _ in range(m)] for _ in range(n)]   # 列表推导式
            # 首先把数组的对角线给放上小球
            i, j = 0, 0
            while i <= n-1 and j <= m-1:
                lst[i][j] = 1
                i += 1
                j += 1
            # 给剩下的行或列放上小球
            if j < m-1:
                while j <= m-1:
                    lst[n-1][j] = 1
                    j += 1
            else:   # 即i<n-1的情况
                while i < n-1:
                    lst[i][m-1] = 1
                    i += 1
            # 把剩余的小球放在最后一个位置上
            lst[n-1][m-1] = k - max(n, m) + 1
            for x in range(n):
                print(' '.join(map(str, lst[x])))
    except:
        break

全部评论
while True: try: n, m, k = map(int, input().split()) max_mn, min_mn = max(m, n), min(m, n) if k < max_mn: print(-1) else: A = [[0 for _ in range(m)] for _ in range(n)] i = 0 while i < min_mn: # 对角线赋值 A[i][i] = 1 i += 1 if n-1 > i: while i < n: A[i][m - 1] = 1 i += 1 elif m-1 > i: while i < m: A[n - 1][i] = 1 i += 1 if k > max_mn: A[n - 1][m - 1] = k - max_mn + 1 for i in A: print(*i) except: break 我不太懂,为什么我的思路和你的类似,但是为什么就是超时呢
点赞 回复 分享
发布于 05-31 16:23 广东

相关推荐

下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
码农索隆:先背最基础的知识,然后理解情景题,现在面试大多数喜欢问情景题,更考验面试者的基础和临场发挥情况
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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