[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