我试着做一个函数,其中我有一个2d数组,有一堆整数对,比如array = [[2,3],[4,7],[6,1],[8,2]]
,它穿过数组,在每一对中选择较高的值,并将其放入对中,然后一次又一次地这样做,在选择较高和较低的值之间交替,直到得到一个整数。
那么比如说,
array = [[1,2],[3,4]] choose maximums from each pair
[2,4] pair the maximums up
[2] choose minimum
这是我到目前为止的代码
array = [[1,2],[3,4]]
def choose(twoarray):
if twoarray[1] > twoarray [2]:
return twoarray[1]
else:
return twoarray[2]
def combineArray(a):
outputArray = []
if not a:
return 0
return outputArray.append(choose(a[0])+combineArray(a[1:]))
print(combineArray(array))
根据在列表的最低深度处取最大值是否重要,这可以通过以下方式完成:
如果在最低深度做什么无关紧要,只要它交替:
如果这真的很重要,这里有一种方法:
只需执行以下操作即可运行这两项:
另外,正如您所知,我将避免在递归函数中使用列表。Python处理可变项的方式与您预期的稍有不同,而且它非常容易混淆
也就是说,一些递归函数实际上依赖于python处理可变项的方式,例如一些深度优先搜索函数,因此如果您知道如何使用它,请不要犹豫
相关问题 更多 >
编程相关推荐