我正在处理的任务是:
给定一个int数组,递归计算数组中出现值为11的次数。我们使用的约定是仅考虑从给定索引开始的数组部分。通过这种方式,递归调用可以传递index+1来遍历整个数组。
我需要使用递归来完成此任务。虽然我在这方面相对较新,但我已经基本实现了它。 以下是我的代码:
给定一个int数组,递归计算数组中出现值为11的次数。我们使用的约定是仅考虑从给定索引开始的数组部分。通过这种方式,递归调用可以传递index+1来遍历整个数组。
我需要使用递归来完成此任务。虽然我在这方面相对较新,但我已经基本实现了它。 以下是我的代码:
def array11(arr, index, cnt=0, num=0):
if(cnt==len(arr)-index):
print("yay!!! number 11 appears %d times"%num)
return
elif(arr[index:][cnt]==11):
num+=1
cnt+=1
array11(arr,index,cnt,num)
else:
cnt+=1
array11(arr,index,cnt,num)
但是我感觉自己以某种方式使用了“cnt”和“num”参数来实现,这样做很廉价。我只是不知道如何在没有计数器的情况下遍历“arr”数组!
那么这种方法可接受吗?你会用相同的方式做吗?
提前感谢。