Menu
CoddyTech

Longest Subarray with Sum K

Dla tablicy liczb całkowitych nums i wartości docelowej k zwróć długość najdłuższej podtablicy, której elementy sumują się dokładnie do k. Podtablica to ciąg kolejnych elementów o długości co najmniej jeden. Niektóre wartości mogą być równe zero lub mniejsze od zera. Jeśli żadna podtablica nie sumuje się do k, zwróć 0.

Funkcja

longestSubarrayWithSumK(nums: integer-array, k: integer) → integer
numsinteger-array
liczby całkowite do wyszukania, w tym liczby ujemne i zera
kinteger
dokładna suma, jaką musi mieć podtablica
Zwracainteger
długość najdłuższej podtablicy, której suma wynosi k, lub 0, jeśli taka nie istnieje

Ograniczenia

  • 1 ≤ nums.length ≤ 2 × 104
  • -104 ≤ nums[i] ≤ 104
  • -109 ≤ k ≤ 109
  • Każda suma prefiksowa mieści się w zakresie od -2 × 108 do 2 × 108, więc wystarczą liczby całkowite 32-bitowe.
  • Zwróć 0, gdy żadna podtablica nie sumuje się do k.

Przykłady

Wejście
nums = [2, -1, 3, 1, -4, 2, 3]k = 5
Wyjście
5
Wyjaśnienie
Trzy ciągi dają w sumie 5: [2, 3] na końcu, [2, -1, 3, 1] na początku oraz [3, 1, -4, 2, 3] na indeksach od 2 do 6. Ostatni jest najdłuższy i zawiera 5 elementów.
challenge icon

Pytanie dodatkowe

Jak znaleźć najdłuższą podtablicę, której suma jest nie większa niż k, przy czym wartości ujemne są nadal dozwolone?

Zresetuj kod
def longestSubarrayWithSumK(nums, k):
    # Wpisz tutaj kod

Test #1

Test #2

Test #3

Argumenty

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

Oczekiwany wynik

5