私はこの場所にいなくなりました。問題はこれのようになります。 n x n
配列が与えられた場合、最も外側の要素から中央の要素に配列された配列要素を時計回りに移動して返します。Snail Sort - 途中でくっついて、どうやって進めるのかわからない
array = [[1,2,3],
[4,5,6],
[7,8,9]]
snail(array) #=> [1,2,3,6,9,8,7,4,5]
より良く理解するために、連続して次のアレイの番号に従ってください。
array = [[1,2,3],
[8,9,4],
[7,6,5]]
snail(array) #=> [1,2,3,4,5,6,7,8,9]
このイメージをより明確に物事を説明します:
私が持っている試みをこれまでのところ:
arr = [[1, 2, 3], [3, 4]];
var n = arr[0].length;
var i = 0, j = 0;
var fa = [];
var count = 0;
var direction = "right";
console.log(n);
while (fa.length < n * n) {
fa.push(`${i}, ${j}`);
if (j == n - 1 && i < n - 1) {
direction = "down";
} else if (j == 0 && i != 0) {
direction = "up";
} else if (i == n - 1) {
direction = "left";
} else if (i == 0) {
direction = "right";
}
switch (direction) {
case "right":
j++;
break;
case "left":
j--;
break;
case "up":
i--;
break;
case "down":
i++;
break;
}
if (count++ == 15)
break;
}
console.log(fa);
私はどのように進めるのかよくわかりません。私は2つのことを知る必要があります。
- ここからどのように進む必要がありますか?
- 私が作っている間違いは何ですか?
あなたはあなたのコードから取得された出力を記述/表示する必要がありますので、私たちが間違っているかのアイデアを持っている... –
あなたが方向を変えるたびに、あなたは削除/あなただけの完成行/列を避ける必要があります。これは再帰的に非常にうまくいくでしょう。 – nurdyguy
@ SunilD。ボス、私は完全なコードを与えました、他に何を期待していますか?あなたのための指示:http://i.imgur.com/nc29mXa.png –