Menu
CoddyTech

Maximum Sum Subarray of Size K

整数の配列 nums とウィンドウの長さ k が与えられます。隣接する要素がちょうど k 個連続するすべての区間を調べ、その中で最大の合計を返してください。値は負になることもあるため、答えも負になる場合があります。

関数

maxSumSubarray(nums: integer-array, k: integer) → integer
numsinteger-array
整数の配列
kinteger
各ウィンドウが保持する隣接要素の数
戻り値integer
連続する任意の k 個の要素の合計の最大値

制約

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

例

入力
nums = [4, -1, 3, 7, -2, 5, 1]k = 3
出力
10
説明
長さ3の5つのウィンドウの合計は、6、9、8、10、4です。最大値は7 + (-2) + 5 = 10です。

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

challenge icon

発展問題

最適なウィンドウの開始位置も返せますか?複数のウィンドウが同率の場合は、最も左側のものを選んでください。

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

ケース1

ケース2

ケース3

入力

nums = [4, -1, 3, 7, -2, 5, 1]
k = 3

期待値

10