Menu
CoddyTech

Minimum Size Subarray Sum

Você recebe um inteiro positivo target e um array nums de inteiros positivos. Encontre o subarray mais curto (uma sequência de elementos vizinhos) cuja soma seja pelo menos target e retorne seu comprimento. Se nenhum subarray atingir target, retorne 0.

Função

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
a soma que um subarray deve alcançar ou ultrapassar
numsinteger-array
o array de números inteiros positivos
Retornainteger
o comprimento da menor submatriz cuja soma seja pelo menos igual a target, ou 0 se nenhuma existir

Restrições

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

Exemplos

Entrada
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
Saída
3
Explicação
Nenhum par de vizinhos chega a 15: o maior par é 9 + 3 = 12. Três chegam: 4 + 2 + 9 = 15 e 9 + 3 + 7 = 19, então a resposta é 3.

lock icon+16 testes ocultos ao enviar

challenge icon

Para ir além

Como você resolveria isso se nums também pudesse conter zeros e números negativos, situação em que a janela deslizante deixa de funcionar?

Redefinir código
def minSubArrayLen(target, nums):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

3