Menu
CoddyTech

Minimum Size Subarray Sum

正の整数 target と、正の整数の配列 nums が与えられます。合計が target 以上となる最短の部分配列(隣り合う要素の連続した並び)を見つけ、その長さを返してください。どの部分配列の合計も target に達しない場合は、0 を返してください。

関数

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
部分配列が達するか超える必要のある合計
numsinteger-array
正の整数の配列
戻り値integer
合計が target 以上となる最短の部分配列の長さ。存在しない場合は 0。

制約

  • 1 ≤ target ≤ 109
  • 1 ≤ nums.length ≤ 2 × 104
  • 1 ≤ nums[i] ≤ 104

例

入力
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
出力
3
説明
隣り合う2つの数では15に達しません。最も大きい組み合わせでも9 + 3 = 12です。3つなら達します。4 + 2 + 9 = 15、9 + 3 + 7 = 19なので、答えは3です。

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

challenge icon

発展問題

スライディングウィンドウが機能しなくなるような、nums にゼロや負の数も含まれる場合は、どのように解決しますか?

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

ケース1

ケース2

ケース3

入力

target = 15
nums = [4, 2, 9, 3, 7, 1, 5]

期待値

3