Menu
CoddyTech

Two Sum II: Sorted Input

整数配列 numbers が非減少順にソートされた状態で与えられ、整数 target が与えられます。異なる位置にある2つの値の合計が target になる組はちょうど1つです。その2つの位置を0始まりのインデックスで返してください。インデックスの小さい方を先にしてください。

関数

twoSumSorted(numbers: integer-array, target: integer) → integer-array
numbersinteger-array
整数のソート済み配列
targetinteger
2つの値の合計が達しなければならない値
戻り値integer-array
i < j かつ numbers[i] + numbers[j] == target を満たす、0始まりの2つのインデックス [i, j]

制約

  • 2 ≤ numbers.length ≤ 104
  • -5 × 108 ≤ numbers[i] ≤ 5 × 108
  • -109 ≤ target ≤ 109
  • numbers は非減少順に並んでいます。
  • インデックスの組 i < j はちょうど1つだけ存在し、numbers[i] + numbers[j] == target を満たします。

例

入力
numbers = [-4, 1, 3, 8, 12]target = 9
出力
[1, 3]
説明
1 はインデックス 1 にあり、8 はインデックス 3 にあります。また、1 + 8 = 9 です。ほかに 9 になるペアはありません。たとえば、-4 + 12 = 8 です。

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

challenge icon

発展問題

追加メモリ O(1) で、O(n) 時間で解けますか?

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

ケース1

ケース2

ケース3

入力

numbers = [-4, 1, 3, 8, 12]
target = 9

期待値

[1, 3]