矩阵打印

81 阅读1分钟

算法题,矩阵打印

输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ]

输出: [ [1], [2,5], [3,6,9], [4,7,10], [8,11], [12] ]

标题

`

def matrix_print(matrix):
    ans = []
    m, n = len(matrix), len(matrix[0])
    for i in range(m + n - 1):
        # x = i if i < m else m - 1
        # y = 0 if i < m else i - m + 1
        # temp = []
        # while x >= 0 and y < n:
        #     temp.append(matrix[x][y])
        #     x -= 1
        #     y += 1
        # ans.append(temp)
        x = 0 if i < n else i - n + 1
        y = i if i < n else n - 1
        temp = []
        while x < m and y >= 0:
            temp.append(matrix[x][y])
            x += 1
            y -= 1
        ans.append(temp)
    return ans
def matrix_print(matrix):
    ans = []
    m, n = len(matrix), len(matrix[0])
    for i in range(m + n - 1):
        if i % 2 == 1:
            x = i if i < m else m - 1
            y = 0 if i < m else i - m + 1
            temp = []
            while x >= 0 and y < n:
                temp.append(matrix[x][y])
                x -= 1
                y += 1
            ans.append(temp)
        else:
            x = 0 if i < n else i - n + 1
            y = i if i < n else n - 1
            temp = []
            while x < m and y >= 0:
                temp.append(matrix[x][y])
                x += 1
                y -= 1
            ans.append(temp)
    return ans



# 测试示例
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
output = matrix_print(matrix)
print(output)

`