チャレンジ
単一の入力整数(N> = 3)を取り、繰り返されるとJPEG「ジグザグ」スキャンパターンに従ってx行列N
をトラバースするインデックスの配列を返す、文字数による最短のコード。以下は、8x8マトリックスsrcのトラバーサルの例です。N
N
例
(中央の行列は入力または出力の一部ではなく、入力が表すNxN行列の表現にすぎません。)
1 2 3
(Input) 3 --> 4 5 6 --> 1 2 4 7 5 3 6 8 9 (Output)
7 8 9
1 2 3 4
(Input) 4 --> 5 6 7 8 --> 1 2 5 9 6 3 4 7 10 13 14 11 8 12 15 16 (Output)
9 10 11 12
13 14 15 16
ノート
- 結果の配列のベースは、使用する言語に適している必要があります(たとえば、Matlab配列は1ベース、C ++配列は0ベースです)。
- これはこの質問に関連しています。
ボーナス
答えを拡張して、2つの入力N
とM
(N、M> = 3)を取得し、N
xM
行列に対して同じスキャンを実行します。(この場合N
、列M
の数と行の数になります。)
ボーナス例
1 2 3 4
(Input) 4 3 --> 5 6 7 8 --> 1 2 5 9 6 3 4 7 10 11 8 12 (Output)
9 10 11 12
1 2 3
(Input) 3 4 --> 4 5 6 --> 1 2 4 7 5 3 6 8 10 11 9 12 (Output)
7 8 9
10 11 12