وظيفة حساب الحد الأقصى لمجموع المصفوفة الفرعية مع قيد على الطول
Go
Hard
functions
مهمة «وظيفة حساب الحد الأقصى لمجموع المصفوفة الفرعية مع قيد على الطول»
اكتب دالة MaxSubarraySumWithLimit(nums []int, k int) int، والتي تستقبل مصفوفة أعداد صحيحة nums وعددًا صحيحًا k (1 ≤ k ≤ len(nums)). يجب أن تعيد الدالة أكبر مجموع لمصفوفة فرعية متصلة طولها لا يتجاوز k. إذا كانت المصفوفة فارغة، أعد 0. قم بتنفيذ خوارزمية بتعقيد زمني O(n).
تنسيق الإدخال
يتم إدخال رقمين: n (طول المصفوفة، 0 ≤ n ≤ 10^5) و k (1 ≤ k ≤ n). ثم n عددًا صحيحًا — عناصر المصفوفة (-10^9 ≤ nums[i] ≤ 10^9).
تنسيق الإخراج
عدد صحيح واحد — أقصى مجموع للمصفوفة الفرعية بطول لا يتجاوز k.
أمثلة
مثال 1
الإدخال
5 3
1 2 3 4 5
الإخراج
12
مثال 2
الإدخال
4 2
-1 -2 -3 -4
الإخراج
-1
مثال 3
الإدخال
7
1 2 3 4 5 -1 6
الإخراج
6
مثال 4
الإدخال
6 4
2 -1 3 4 -2 1
الإخراج
8
مثال 5
الإدخال
3
-5 10 20
الإخراج
15
main.go