【发布时间】:2011-12-15 12:35:06
【问题描述】:
您可能对我的要求感到奇怪,但这是真的,将 1 two-dimensional array 转换为 2 one-dimensional arrays。
这是我的老师问的,他说他会给回答这个(我认为,棘手的)问题的人一个完美的分数。我很乐意将任何 2 维或 n 维数组转换为一个一维数组。但是他说的是2,所以我觉得肯定跟第二个数组有关系。而且,他没有说明什么类型的数组(int、String 或 object),所以我认为必须使用任何类型的二维数组来完成。
如果这里没有人弄清楚他想要什么,我会回答他:转换为一维数组,并将第二个保留为空(或让它没有元素)。但我认为对于这样一个棘手的问题,这不是一个好的答案。
编辑:这是我老师的问题,逐字逐句(他只是在课程结束时用语音提问,而不是在教科书中,作为奖励问题(...一个不错的奖励)):给定 a 2-dimensional array,将其转换为 2 1-dimensional arrays。
我不知道Java和C#中的[][]是否考虑2-dimensional array,但是C#确实有[,],它是二维数组。我们正在研究计算机算法,没有目标 IDE 或语言。
EDIT2:我给他发了邮件,他拒绝提供更多信息(他说如果我有比他们更多的信息对其他人不公平),他也没有提供任何关于 jagged数组的想法。在他的回复中唯一有用的是:让 [][] 被视为2-dimensional array。
【问题讨论】:
-
鉴于 Java 并没有真正拥有这样的二维数组(它有数组的数组),因此很难给出一个好的答案。提出一个精确的问题真的很有帮助——最好是样本输入和预期输出。我认为这个问题没有必要像“没有明确说明”那样“棘手”。
-
这听起来更像是一个横向思维难题,而不是一个编码问题。即,一旦你得到一些额外的信息,他使用了什么技巧使他所说的变得有意义。
-
您能否发布(或链接到)讲师问题的确切措辞?
-
@W.N.:那么我担心这个问题的措辞太糟糕了,无法给出有意义的明确答案。下次联系你的老师了解更多详情:)
-
一个想法是在一个数组中逐行和第二列逐列保持,一些在两次通过(第一次通过水平,第二次通过垂直)中工作的成像算法可能有用,我认为这将是更合乎逻辑的解释,而不是保存行开始的索引(因为你可以很容易地计算它们)。