Я новичок в Python. Я написал функцию, о возвратах число вхождений х в отсортированном повторяющиеся элементы массива A:Python RuntimeError: превышена максимальная глубина рекурсии
def FindFirstIndex(A, low, high, x, n):
low = 0
high = len(A) - 1
if low <= high:
mid = low + (high - low)/2
if (mid == 0 or x > A[mid - 1]) and A[mid] == x:
return mid
elif x > A[mid]:
return FindFirstIndex(A, (mid + 1), high, x, n)
else:
return FindFirstIndex(A, low, (mid - 1), x, n)
return -1
def FindLastIndex(A, low, high, x, n):
low = 0
high = len(A) - 1
if low <= high:
mid = low + (high - low)/2
if (mid == n - 1 or x < A[mid + 1]) and A[mid] == x:
return mid
elif x < A[mid]:
return FindFirstIndex(A, low, (mid - 1), x, n)
else:
return FindFirstIndex(A, (mid + 1), high, x, n)
return -1
def COUNT(A, x):
i = FindFirstIndex(A, 0, len(A) - 1, x, len(A))
if i == -1:
return i
j = FindLastIndex(A, i, len(A) - 1, x, len(A))
length = j - i + 1
return length
Ошибка: RuntimeError: максимальная глубина рекурсии превышено. Кто-нибудь знает, как его решить?
Можете ли вы привести пример, который вы получили эту ошибку? – ozgur
в fuction 'FindFirstIndex', пожалуйста, предоставьте условие' elif', что вы должны проверить. В противном случае он повторяется каждый раз, если выше двух условий 'if' являются ложными – itzMEonTV
Hey @MohitBhasi man Вы имеете в виду тот же вопрос, любезно отредактируйте свой комментарий. Спасибо – ZdaR