Menu
CoddyTech

Minimum Size Subarray Sum

Otrzymujesz dodatnią liczbę całkowitą target oraz tablicę nums zawierającą dodatnie liczby całkowite. Znajdź najkrótszą podtablicę (ciąg sąsiadujących elementów), której suma jest co najmniej równa target, i zwróć jej długość. Jeśli żadna podtablica nie osiąga wartości target, zwróć 0.

Funkcja

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
suma, którą podtablica musi osiągnąć lub przekroczyć
numsinteger-array
tablica liczb całkowitych dodatnich
Zwracainteger
długość najkrótszej podtablicy, której suma wynosi co najmniej target, lub 0, jeśli taka nie istnieje

Ograniczenia

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

Przykłady

Wejście
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
Wyjście
3
Wyjaśnienie
Żadni dwaj sąsiedzi nie osiągają 15: największa para to 9 + 3 = 12. Trzy liczby osiągają ten wynik: 4 + 2 + 9 = 15 oraz 9 + 3 + 7 = 19, więc odpowiedź to 3.

lock icon+16 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Jak rozwiążesz ten problem, jeśli nums może zawierać również zera i liczby ujemne, przez co metoda przesuwanego okna przestaje działać?

Zresetuj kod
def minSubArrayLen(target, nums):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

3