【发布时间】:2010-06-11 19:20:00
【问题描述】:
挑战
按字符数计算的最短代码,它采用单个输入整数 N (N >= 3) 并返回一个索引数组,在迭代时将根据 JPEG“zigzag”遍历 NxN 矩阵"扫描模式。下面是一个遍历 8x8 矩阵的示例src:
示例
(中间矩阵不是输入或输出的一部分,只是输入所代表的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 开始的)。
- 这与this question有关。
奖金
扩展您的答案以获取两个输入 N 和 M (N, M >=3) 并对 NxM 矩阵执行相同的扫描。 (在这种情况下,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
【问题讨论】:
-
我将使用...在 7 个字符以下开始 J 池。
-
@Mark:到目前为止,我最好的是 15。我很确定 7 是不可能的,但我很想被证明是错误的。
-
为什么我花了一天的时间编写代码,然后又花了 3 个小时进行代码高尔夫? =P
标签: language-agnostic code-golf rosetta-stone