Menu
CoddyTech

Find Pivot Index

やさしい累積和python iconjava iconcpp iconc iconjs icon+10

整数の配列 nums が与えられます。ピボットインデックスとは、その左側の値の合計と右側の値の合計が等しくなるインデックスです。ピボット自体の値はどちら側にも含まれず、値がない側の合計は 0 です。

最も左にあるピボットインデックスを返してください。ピボットとなるインデックスがない場合は、-1 を返してください。

関数

pivotIndex(nums: integer-array) → integer
numsinteger-array
バランスを取る整数の配列
戻り値integer
最も左にあるピボットインデックス、存在しない場合は -1

制約

  • 1 ≤ nums.length ≤ 104
  • -1000 ≤ nums[i] ≤ 1000

例

入力
nums = [3, 1, 5, 2, 2]
出力
2
説明
インデックス 2 では、左側は 3 + 1 = 4、右側は 2 + 2 = 4 です。インデックス 0 とインデックス 1 では釣り合いません(左側 0 に対して右側 10、左側 3 に対して右側 9)。したがって、2 が最も左にあるピボットです。

lock icon提出時に隠しテスト+17件

challenge icon

発展問題

合計を先に求めずに、各値を一度だけ読み取って最も左のピボットを見つけられますか?その場合、メモリのコストはどれくらいですか?

コードをリセット
def pivotIndex(nums):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

nums = [3, 1, 5, 2, 2]

期待値

2