Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

153
Visualizações
¿Qué está pasando con el último elemento de la matriz?

Entonces, estoy tratando de resolver el ejercicio en https://leetcode.com/problems/add-two-numbers/

Se me ocurrió esta solución (que probé con éxito con matrices más cortas de aproximadamente 5-7 elementos)

 class ListNode { val: number next: ListNode | null constructor(val?: number, next?: ListNode | null) { this.val = (val===undefined ? 0 : val) this.next = (next===undefined ? null : next) } } var l1 = new ListNode(1, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0, new ListNode(0 , new ListNode(0, new ListNode(0 , new ListNode(0, new ListNode(1))))))))))))))))))))); var l2 = new ListNode(5, new ListNode(6, new ListNode(4))); function addTwoNumbers(l1: ListNode | null, l2: ListNode | null): ListNode | null { let r1 = [], r2 = []; while(l1 !== null) { r1.push(l1.val); l1 = l1.next; } while(l2 !== null) { r2.push(l2.val); l2 = l2.next; } console.log(r1); console.log(r2); r1.reverse(); r2.reverse(); let n1, n2; n1 = Number(r1.join('')) n2 = Number(r2.join('')) let n3 = n1 + n2; let newN3 = n3.toString().split('').reverse(); console.log(`N1: ${n1} N2: ${n2} N3: ${n3} newN3: ${newN3.toString()}`); let l3 : ListNode[] = []; for(let i = 0 ; i < newN3.length ; i ++) l3.push(new ListNode(Number(newN3[i]),null)); for(let i = 0 ; i < l3.length ; i++) l3[i].next = l3[i+1]??null; return l3[0]; }; let salida = addTwoNumbers(l1,l2); console.log(salida); while(salida !== null) { console.log('Num; ', salida.val); salida = salida.next; }

Sin embargo, cuando lo probé con esa matriz l1 de 21 elementos, parece que ignora el último elemento de la matriz. La salida de eso es:

 [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ] [ 5, 6, 4 ] N1: 100000000000000000000 N2: 465 N3: 100000000000000000000 newN3: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 ListNode { val: 0, next: ListNode { val: 0, next: ListNode { val: 0, next: [ListNode] } } } Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 0 Num; 1

Tenga en cuenta que N1 debe ser 100000000000000000001 y genera 100000000000000000000. Y la suma de N1+N2 es incorrecta.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para un número entero más grande, use BigInt en lugar de Number, reemplace Number con BigInt y estará listo para comenzar

 Number.MAX_SAFE_INTEGER // 9007199254740991

MDN Número Máx. Entero seguro

Empezando

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda