您有一个类似下面的列表
list = [
[1,7,1,5,6],
[1,8,9,1,5],
[1,1,10,1,5],
[2,1,1,1,1],
[1,1,1,1,1]
]
从列表中间开始,您将如何分析周围的数字并将您的位置更改为具有最大值的位置。所以在这种情况下
arr[2][2] (10) -> arr[1][2] (9) -> arr[1][1] (8) -> arr[0][1] (7)
从数组中间开始的含义如何只选择值
[8,9,1]
[1,10,1]
[1,1,1]
然后对任何具有最大价值的位置做同样的事情[9]。
到目前为止我所拥有的:
midLow=0
midHigh=0
rowLow=0
rowHigh = 0
# -- Columns --
evenOddCol = (len(arr)%2) # Find if there are even/off number of items in the list
mid = (len(arr)/2) # Define Middle row
if evenOddCol == 1: # If number of rows is odd, make no changes
mid = mid
else: # If number of rows is even, define the upper/lower list
midLow = mid-1
midHigh = mid
# -- Rows --
rowLen = (len(arr[1])) # Length of an arbitary row
evenOddRow = ((rowLen)%2) # Does row have an even/off number of elements
rowMid = (rowLen/2) # Define the middle of the row
if evenOddRow == 1: # If the number of rows is odd, make no changes
rowMid = rowMid
else: # If the number of rows is even, define the upper/lower rows
rowLow = rowMid-1
rowHigh = rowMid
# -- Logic --
return arr[mid][rowMid]
返回10,即2d列表数组的中间值。
返回中间值后,您必须确定最高的周围值。不知道该怎么做。