我對Python完全陌生,因此也是個問題。 我試圖解決一個標準的面試問題,該問題是在數組中找到一個峯值 峯值被定義爲大於其左右鄰居的數字。我試圖找到最大的這樣的高峯。在數組中尋找高峯
這是我的代碼
#!/usr/bin/python3
def main():
arr = [7, 12, 13, 8, 2, 16, 24, 11, 5, 1]
num = find_peak(arr)
print(num)
def find_peak(arr):
return find_peak(arr, 0, len(arr))
def find_peak(arr, start, stop):
mid = (start + stop)/2
if(arr[mid] > arr[mid-1] and arr[mid] > arr[mid+1]):
return arr[mid]
elif (arr[mid] < arr[mid -1]):
find_peak(arr, 0, mid-1)
elif (arr[mid] < arr[mid+1]):
find_peak(arr, mid+1, stop)
if __name__ == '__main__':
main()
這是我得到
Traceback (most recent call last):
File "peak.py", line 23, in <module>
main()
File "peak.py", line 5, in main
num = find_peak(arr)
TypeError: find_peak() missing 2 required positional arguments: 'start' and 'stop'
任何幫助表示讚賞
不明白的向下投票。如果每個人都知道所有事情,那麼stackoverflow – Zeus