给定一个 n
x n
数组,返回从最外面的元素到中间的元素排列的数组元素,顺时针方向移动。
例如:
array = [[1,2,3],
[4,5,6],
[7,8,9]]
snail(array) #=> [1,2,3,6,9,8,7,4,5]
array = [[1,2,3],
[8,9,4],
[7,6,5]]
snail(array) #=> [1,2,3,4,5,6,7,8,9]
具体排序如图:
Python 代码实现
如果各位大神有更好的步骤,欢迎指出呀!
简单的循环解法
第一种:
# 蜗牛排序
array = [
[1, 2, 3],
[4, 5, 6],
[4, 5, 6]
]
def snail(arrays):
arr_list = cycle(arrays)
arr = arr_list[1]
lists = arr_list[0]
while len(arr) != 0:
# 执行蜗牛排序
arr_list = cycle(arrays)
arr = arr_list[1]
lists += arr_list[0]
# print(lists)
return lists
def cycle(arrays):
arr_list = arrays
# 获取列表长度
length = len(arr_list)
lists = []
popList = []
for i in <