【发布时间】:2021-09-10 01:14:16
【问题描述】:
给定一个简单的矩阵,而不是二维数组,是否可以在不转换为矩阵(二维数组)的情况下迭代对角线和逆对角线?或者对于对角线,我们是否总是需要转换为二维矩阵?
例如使用Java Stream:
给定一个简单数组:
private static final String[] SIMPLE_ARRAY = new String[] {
"CTGAGA",
"CTGAGC",
"TAGTGT",
"AGAGGG",
"CCCETA",
"TCACTG"
};
打印线:
Arrays.stream(SAMPLE_DATA).forEach(System.out::println);
输出:
CTGAGA
CTGAGC
TAGTGT
AGAGGG
CCCETA
TCACTG
打印列:
IntStream.range(0, SAMPLE_DATA.length).mapToObj(col ->
Arrays.stream(SAMPLE_DATA).reduce("", (acc, row) -> acc + row.charAt(col))
).forEach(System.out::println);
输出:
CCTACT
TTAGCC
GGGACA
AATGEC
GGGGTT
ACTGAG
打印对角线: ?
打印反对角线: ?
【问题讨论】:
-
这个问题似乎与 Java 紧密相关,或者至少与语言有关。在某些语言中,这将非常容易,而在其他语言中则更难,并且可能有些地方您需要切换到 2D 数组或类似语言。
标签: arrays algorithm matrix data-structures