前端算法題: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));

若是是須要輸入下面的結果javascript

1
1 1
1 2 1
...
輸入 n ,輸出數組
假設輸入 3,輸出數組 [1, 1, 1, 1, 2, 1]

只須要添加arr.push的時候添加擴展運算符(...)便可,這裏只須要更改兩個地方java

1. arr.push([1])  改爲 arr.push(...[1]) 
2. arr.push(newarr)  改爲 arr.push(...newarr)
相關文章
相關標籤/搜索