javasript两个数组元素分别相加
发表于:2021-08-23 09:36:27浏览:1872次
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 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]
