使用递归维护满足条件的子数组的计数
Mantain a count of subarrays that satisfy the condition usning recursion
所以我做了一个递归函数,它给我所有的子数组,我想对这些子数组应用一个条件,然后保留满足条件的子数组的数量。但是计数变量的初始化一直困扰着我,请帮忙!
这是我的代码:
def printSubArrays(arr, start, end):
if end == len(arr):
return
elif start > end:
return printSubArrays(arr,0,end+1)
else:
dictio = arr[start:end + 1]
print(dictio)
if len(dictio)!=1:
for i in range(len(dictio)):
aand =1
aand =aand & dictio[i]
if aand %2 !=0:
count=count+1
return printSubArrays(arr,start+1,end)
arr=[1,2,5,11,15]
dictio=[]
count = 0
printSubArrays(arr,0,0)
print(count)
最常用的计数技术是使用辅助函数。所以你会让你的主函数像这样调用一个助手:
def printSubArrays(arr, start, end):
return _printSubArrays(arr, start, end, 0)
最后的0是计数
然后每次你递归递增:
def _printSubArrays(arr, start, end, count):
if end == len(arr):
return count
elif start > end:
return _printSubArrays(arr,0,end+1, count + 1)
else:
dictio = arr[start:end + 1]
print(dictio)
if len(dictio)!=1:
for i in range(len(dictio)):
aand =1
aand =aand & dictio[i]
if aand %2 !=0:
count=count+1
return _printSubArrays(arr,start+1,end, count+1)
所以我做了一个递归函数,它给我所有的子数组,我想对这些子数组应用一个条件,然后保留满足条件的子数组的数量。但是计数变量的初始化一直困扰着我,请帮忙!
这是我的代码:
def printSubArrays(arr, start, end):
if end == len(arr):
return
elif start > end:
return printSubArrays(arr,0,end+1)
else:
dictio = arr[start:end + 1]
print(dictio)
if len(dictio)!=1:
for i in range(len(dictio)):
aand =1
aand =aand & dictio[i]
if aand %2 !=0:
count=count+1
return printSubArrays(arr,start+1,end)
arr=[1,2,5,11,15]
dictio=[]
count = 0
printSubArrays(arr,0,0)
print(count)
最常用的计数技术是使用辅助函数。所以你会让你的主函数像这样调用一个助手:
def printSubArrays(arr, start, end):
return _printSubArrays(arr, start, end, 0)
最后的0是计数
然后每次你递归递增:
def _printSubArrays(arr, start, end, count):
if end == len(arr):
return count
elif start > end:
return _printSubArrays(arr,0,end+1, count + 1)
else:
dictio = arr[start:end + 1]
print(dictio)
if len(dictio)!=1:
for i in range(len(dictio)):
aand =1
aand =aand & dictio[i]
if aand %2 !=0:
count=count+1
return _printSubArrays(arr,start+1,end, count+1)