前端算法题:JS递归实现杨辉三角
1 1 1 1 2 1 ... 输入 n ,输出数组 假设输入 3,输出数组 [[1],[1,1],[1,2,1]]
function triangle(num){
let arr = [];
arr.push([1]);
loop([1]);
function loop(lastarr){ // 代码循环的部分
if(lastarr.length < num){
let newarr = [];
newarr[0] = 1; // 头部是1
newarr[lastarr.length] = 1; // 尾部也是1
for(let i = 0; i < lastarr.length-1; i++){
newarr[i+1] = lastarr[i] + lastarr[i+1];
}
arr.push(newarr);
loop(newarr);
}
}
return arr;
}
console.log(triangle(5));如果是需要输入下面的结果
1 1 1 1 2 1 ... 输入 n ,输出数组 假设输入 3,输出数组 [1, 1, 1, 1, 2, 1]
只需要添加arr.push的时候添加扩展运算符(...)即可,这里只需要更改两个地方
1. arr.push([1]) 改成 arr.push(...[1]) 2. arr.push(newarr) 改成 arr.push(...newarr)
相关推荐
steeven 2020-11-10
Tips 2020-10-14
nongfusanquan0 2020-08-18
yedaoxiaodi 2020-07-26
清溪算法君老号 2020-06-27
pengkingli 2020-06-25
yishujixiaoxiao 2020-06-25
清溪算法 2020-06-21
RememberMePlease 2020-06-17
nurvnurv 2020-06-05
SystemArchitect 2020-06-02
码墨 2020-05-29
清溪算法 2020-05-27
choupiaoyi 2020-05-27
清溪算法 2020-05-25
bluewelkin 2020-05-19
dbhllnr 2020-05-15
steeven 2020-05-09
baike 2020-05-09