Menu
CoddyTech

Median of Two Sorted Arrays

DifícilBusca bináriapython iconjava iconcpp iconc iconjs icon+10

Você recebe duas listas de inteiros, nums1 e nums2, cada uma ordenada do menor para o maior e contendo pelo menos um valor. Retorne a mediana de todos os valores juntos, como texto.

Para uma quantidade total ímpar, a mediana é o valor do meio, como "4". Para uma quantidade par, é a média dos dois valores do meio, como "2.5" ou "-0.5". Escreva um número inteiro sem ponto decimal e zero como "0", nunca como "-0". Busque um tempo de execução de O(log(min(m, n))).

Função

findMedianSortedArrays(nums1: integer-array, nums2: integer-array) → string
nums1integer-array
primeira lista, ordenada do menor para o maior
nums2integer-array
a segunda lista, ordenada do menor para o maior
Retornastring
a mediana de todos os valores, como texto, por exemplo "4" ou "-2.5"

Restrições

  • 1 ≤ nums1.length, nums2.length ≤ 3000
  • -106 ≤ nums1[i], nums2[i] ≤ 106
  • Ambas as listas estão ordenadas em ordem não decrescente, e os valores podem se repetir.

Exemplos

Entrada
nums1 = [1, 4]nums2 = [2, 7, 9]
Saída
"4"
Explicação
Juntos, os valores são 1, 2, 4, 7, 9. Cinco valores têm um valor central, o terceiro, que é 4.
challenge icon

Para ir além

Você consegue usar o mesmo corte para encontrar o k-ésimo menor valor das duas listas, para qualquer k, em tempo logarítmico?

Redefinir código
def findMedianSortedArrays(nums1, nums2):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

nums1 = [1, 4]
nums2 = [2, 7, 9]

Saída Esperada

"4"