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) よりも高速なものが必要だとします。そうでない場合は、三分探索は必要ありません..