列表矩阵
本帖最后由 Ari小虎鱼 于 2022-4-18 18:25 编辑matrix = [,
,
]
#初始化
top = 0
bottom = len(matrix)
right = len(matrix)
left = 0
spiral = []
#遍历一周
while True:
for each in range(left,right):
spiral.append(matrix)
for each in range((top+1),bottom):
spiral.append(matrix)
for each in range(right-2,left-1,-1):
spiral.append(matrix)
for each in range(bottom-2,top,-1):
spiral.append(matrix)
left += 1
right -=1
top += 1
bottom -= 1
if left > right or top > bottom:
break
#打印
print(spiral)
代码运行整体没问题,就是结尾会再返回
>>>
请大佬看看这个应该怎么改? 就是结尾会再返回
这句话是啥意思??? 可以个笨办法来解决,就会发现问题出现在第三个for循环
matrix = [,
,
]
# 初始化
top = 0
bottom = len(matrix)# 3
right = len(matrix)# 4
left = 0
spiral = []
# 遍历一周
while True:
for each in range(left, right):# 04 13
spiral.append(matrix)
print(matrix)
for each in range((top+1), bottom):# 13 33pass
spiral.append(matrix)
print(matrix)
for each in range(right-2, left, -1):# 2-1 10!!!
spiral.append(matrix)
print(matrix, right, left)
for each in range(bottom-1, top, -1):# 10 00
spiral.append(matrix)
print(matrix)
left += 1
right -= 1
top += 1
bottom -= 1
if left > right or top > bottom:
break
# 打印
print(spiral)
大马强 发表于 2022-4-18 21:56
可以个笨办法来解决,就会发现问题出现在第三个for循环
嗯嗯,就是我知道问题在第三个循环但是找不出来 Ari小虎鱼 发表于 2022-4-20 12:20
嗯嗯,就是我知道问题在第三个循环但是找不出来
你现在知道你的问题了吗 大马强 发表于 2022-4-21 00:02
你现在知道你的问题了吗
就是它顺时针走一圈,走到最内圈的时候会再向左走,相当于又走了一圈
不知道怎么改 你可以把第三个和第四个for循环的逻辑改一改
第三个不用到最左边的元素,也就是下标为0的元素
第四个循环就可以从最左边的元素往上走 wp231957 发表于 2022-4-18 18:32
就是结尾会再返回
这句话是啥意思???
emm就是结果是输出7后又输出6
页:
[1]