javasript两个数组元素分别相加
发表于:2021-08-23 09:36:27浏览:1493次
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例 1:
输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807
示例2:
输入:l1 = [0], l2 = [0] 输出:[0] 解释:0 + 0= 0
示例3:
输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] 输出:[8,9,9,9,0,0,0,1] 解释:9999999 + 9999= 89990001
解法:
function sum(a,b,c){ let d=a+b+c; if(d>9){ let e=d%10; return [1,e]; } else{ return [d]; } } function add(len1,len2){ let i=0,j=0,sumArray = [],addOne=0; if(len1.length<len2.length){ i=len1; j=len2; }else{ i=len2; j=len1; } for(let m=0;m<j.length;m++){ let a=0; let b=j[m]; if(m<i.length){ a=i[m]; } let k=sum(a,b,addOne); if(k.length>1){ addOne=1; sumArray.push(k[1]); } else{ sumK=0; sumArray.push(k[0]); } if(m==j.length-1 && addOne==1){ sumArray.push(1); } } console.log(sumArray); } //add([2,4,3],[5,6,4]);//[7,0,8] //add([0],[0]);//[0] add([9,9,9,9,9,9,9],[9,9,9,9]);//[89990001]