Menu
CoddyTech

Minimum Size Subarray Sum

Recibes un entero positivo target y un arreglo nums de enteros positivos. Encuentra el subarreglo más corto (una secuencia de elementos contiguos) cuya suma sea al menos target y devuelve su longitud. Si ningún subarreglo alcanza target, devuelve 0.

Función

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
la suma que debe alcanzar o superar un subarreglo
numsinteger-array
el arreglo de enteros positivos
Devuelveinteger
la longitud del subarreglo más corto cuya suma sea al menos igual al objetivo, o 0 si no existe ninguno

Restricciones

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

Ejemplos

Entrada
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
Salida
3
Explicación
Ningún par de vecinos alcanza 15: el par más grande es 9 + 3 = 12. Tres sí lo alcanzan: 4 + 2 + 9 = 15 y 9 + 3 + 7 = 19, así que la respuesta es 3.

lock icon+16 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Cómo lo resolverías si nums también pudiera contener ceros y números negativos, y la ventana deslizante dejara de funcionar?

Restablecer código
def minSubArrayLen(target, nums):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

3