Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!