size の int の配列が与えられた場合t
、中心のインデックスを見つける必要があります。中央x
のインデックスは、int (0 から x-1) の合計が合計 (x+1 から t-1) に等しいインデックスです。
私が思いつく最高のアルゴリズムは O(n) です。
以前のすべてのintの合計を含む一時配列があります(インデックスxのものは含まれません):したがって、インデックス1では1になり、2では2と1の合計になります。
別の int は、すべての int の合計になります。
配列を 2 回ループして、最初に一時配列を作成し、もう 1 回で両方の部分が等しいかどうかを調べます。
より良いアルゴリズム O(logn) はありますか?