每日一練---codewars5

蛇形 emmm 就當是貪吃蛇吧
看到的時候想到了貪吃蛇 沿邊邊開始吃
難度:4kyu

1、思路  貪吃蛇吃一個 那就少一個    從左上到右上  從右上到右下  
2、吃完邊上一圈的時候  我把整個數(shù)組翻轉  然后再把數(shù)組內的元素(數(shù)組) 翻轉  再繼續(xù)吃  從左上到右上  從右上到右下
var snail = function (array) {
    // 最后的結果數(shù)組
    var result = [];
    // while 循環(huán),當 array 長度為0,說明被吃完了
    while (array.length) {
        // 直接拿第一排  因為一開始肯定吃第一橫排
        result.push(...array.shift())
        // 吃完第一排之后
        // [4, 5, 6],
        // [7, 8, 9]

        // 然后吃第二橫排的最后一個
        // 依次往下吃下一橫排的最后一個
        for (var i = 0; i < array.length; i++) {
            result.push(array[i].pop())
        };
        // 這是吃完最右邊邊上的 都吃完了  這時候整個數(shù)組瘦了邊上一圈 從左上到右上  從右上到右下
        // [4, 5],
        // [7, 8]

        // 然后反轉整個數(shù)組 ,數(shù)組內的數(shù)組也翻轉
        array.reverse();
        for (var i = 0; i < array.length; i++) {
            array[i].reverse();
        };
        // [8, 7],
        // [5, 4]

        // 然后繼續(xù)開始吃, while 循環(huán)
    }
    return result
}
// snail([[]])
// []

// snail([[1]])
// [1]

// snail([
//     [1, 2, 3],
//     [4, 5, 6],
//     [7, 8, 9]
// ])
// [1, 2, 3, 6, 9, 8, 7, 4, 5]

// snail([
//     [ 1,  2,  3,  4,  5],
//     [ 6,  7,  8,  9, 10],
//     [11, 12, 13, 14, 15],
//     [16, 17, 18, 19, 20],
//     [21, 22, 23, 24, 25]
// ])
// // [1, 2, 3, 4, 5, 10, 15, 20, 25, 24, 23, 22, 21, 16, 11, 6, 7, 8, 9, 14, 19, 18, 17, 12, 13]

// snail([
//     [ 1,  2,  3,  4,  5, 6],
//     [20, 21, 22, 23, 24, 7],
//     [19, 32, 33, 34, 25, 8],
//     [18, 31, 36, 35, 26, 9],
//     [17, 30, 29, 28, 27, 10],
//     [16, 15, 14, 13, 12, 11]])
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]

各位看官,留下你的小心心,好嘛

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容