1

Aをnの正の整数の配列とします。

次のようなA のインデックスkを見つけるにはどうすればよいですか。

left  = A[0] + A[1] + ... + A[k]
right = A[k+1] + A[k+2] + ... + A[n]

絶対差が最小である (つまり、abs(left - right)最小である) ?

この差の絶対関数は放物線(最小差まで減少し、Uのように増加する)であるため、このような関数(放物線)で値を見つけるために三分探索が使用されると聞きましたが、方法がわかりません私はインターネットで検索しましたが、放物線関数に対する三項検索の使用法が見つからなかったので、それを実装してください。

編集: O(1) ですべての間隔の合計があり、O(n) よりも高速なものが必要だとします。そうでない場合は、三分探索は必要ありません..

4

2 に答える 2