蛇形 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]
各位看官,留下你的小心心,好嘛