Executando verificação de segurança...
10

[DESAFIO] - Duas Somas


Fala galera!

A pouco comecei a acompanhar o tabnews e senti vontade de cria conteúdo por aqui, porém o meu maior dilema era, o que ??!

Assim pensando em um dos meus maiores problemas desde o inicio da minha carreira, resolvi trazer algo que me faltou no inicio, PROBLEMAS A SEREM RESOLVIDOS! kk

Então, a partir de hoje, estarei postando aqui alguns desafios com suas soluções em typescript para nos divertirmos um pouco!

Segue o Primeiro!!

Duas somas

Nivel: Facil

Dada uma matriz de números inteiros nums e um número inteiro target, retorne os índices dos dois números de forma que a soma deles seja target.

Você pode assumir que cada entrada teria exatamente uma solução e não pode usar o mesmo elemento duas vezes.

Você pode retornar a resposta em qualquer ordem.

Exemplo 1:

Entrada: nums = [2,7,11,15], alvo = 9
 Saída: [0,1]
Explicação: Como nums[0] + nums[1] == 9, retornamos [0, 1].

Exemplo 2:

Entrada: nums = [3,2,4], alvo = 6
 Saída: [1,2]

Exemplo 3:

Entrada: nums = [3,3], alvo = 6
 Saída: [0,1]

Restrições:

2 <= nums.length <= 10^4
-10^9 <= nums[i] <= 10^9
-10^9 <= target <= 10^9

Existe apenas uma resposta válida.

Solução

function twoSum(nums: number[], target: number): number[] {
    const values = new Map<number, number>()

    for(const [index, value] of nums.entries()) {
        const sub = target - value
        if(values.has(sub)){
            return [index, values.get(sub)]
        }
        values.set(value, index)
    }
};

Casos de testes

Caso 1

✅  Entrada = [2,7,11,15]
    Alvo = 9
    Saida: [1,0]

Caso 2


✅  Entrada = [3,2,4]
    Alvo = 6
    Saida: [2,1]

Caso 3

✅  Entrada = [3,3]
    Alvo = 6
    Saida: [1,0]

Caso 4

✅  Entrada = [2,3,7,10]
    Alvo = 12
    Saida: [3,0]

Agora faz assim! Sinta se a vontade de compartilhar aqui uma possível melhoria ou sua solução!!

Valeu!

Fernando Souza
Doxa Code

Carregando publicação patrocinada...