我觉得我的算法比较简单易懂,比网上的那些简单些。至于时间复杂度就没有比较了。
算法思想:从最外层向内层遍历矩阵
# my algorithmimport math def print_matrix(matrix): rec = [] # 存储遍历元素 rows = len(matrix) cols = len(matrix[0]) if rows < cols: k = math.ceil(rows/2) else: k = math.ceil(cols/2) for n in range(k): # 总的循环次数 # 最上边的行循环 i = j = n while j < cols: rec.append(matrix[i][j]) # print(matrix[i][j]) j += 1 # 最右边的列循环 j -= 1 i += 1 while i < rows: rec.append(matrix[i][j]) # print(matrix[i][j]) i += 1 # 最下面的行循环 i -= 1 while j > n: j -= 1 rec.append(matrix[i][j]) # print(matrix[i][j]) # 最左边的列循环 while i > n+1: i -= 1 rec.append(matrix[i][j]) # print(matrix[i][j]) rows -= 1 cols -= 1 return rec
原文地址:https://www.cnblogs.com/mengxiangtiankongfenwailan/p/8761405.html
时间: 2024-11-13 09:08:31