Menu
CoddyTech

Minimum Size Subarray Sum

Vous recevez un entier positif target et un tableau nums d’entiers positifs. Trouvez le sous-tableau le plus court (une suite d’éléments voisins) dont la somme est supérieure ou égale à target, et renvoyez sa longueur. Si aucun sous-tableau n’atteint target, renvoyez 0.

Fonction

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
la somme qu'un sous-tableau doit atteindre ou dépasser
numsinteger-array
le tableau d’entiers positifs
Renvoieinteger
la longueur du plus court sous-tableau dont la somme est supérieure ou égale à target, ou 0 si aucun n’existe

Contraintes

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

Exemples

Entrée
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
Sortie
3
Explication
Aucun couple de voisins n’atteint 15 : la plus grande somme de deux nombres voisins est 9 + 3 = 12. Trois nombres voisins y parviennent : 4 + 2 + 9 = 15 et 9 + 3 + 7 = 19, donc la réponse est 3.

lock icon+16 tests cachés à la soumission

challenge icon

Pour aller plus loin

Comment résoudrais-tu le problème si nums pouvait aussi contenir des zéros et des nombres négatifs, ce qui rendrait la fenêtre glissante inopérante ?

Réinitialiser le code
def minSubArrayLen(target, nums):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

3