長さnのリストが与えられた場合、リストの中で最も大きな数字のインデックスをO(log(n) Pythonのinbuilt maxメソッドを使用せずに。以下は私の試みは、私は自分のコードを実行したときしかし、私はラインPythonコードのValueErrorでリスト内の最大数のインデックスを見つけようとしています
return n.index(find_max_number(n))
にエラー
ValueError: 0 is not in list
を取得し、です。私のコードと代替ソリューションに関するフィードバックは高く評価されます。
def find_maximum(n):
b = find_max_number(n)
return n.index(b)
def find_max_number(n):
middle = len(n)//2
if len(n) == 1 :
return (n[0])
if len(n)>2:
if n[middle] > n[middle-1] and n[middle] > n[middle+1] :
return (n[middle])
if (n[middle-1] < n[middle]):
return find_maximum(n[middle:])
else :
return find_maximum(n[:middle])
シェア:また
、あなたは直接、インデックスのために行くことができます。また、代替ソリューションに興味がありますか、または既存のコードを修正する目標ですか? – timgeb
どのようなエラーが表示されますか?詳細を追加してください。 –
'max()'を使用しない理由は何ですか? – DeepSpace