【发布时间】:2022-01-02 19:31:07
【问题描述】:
我有一个名为 m 的给定矩阵,它的维度是 n x n,它包含整数。我需要将只出现一次的数字复制到一个名为 a 的新数组中。
我认为逻辑是为矩阵中的每个数字设置一个 for 循环,并将其与每个其他数字进行比较,但我不知道如何用代码实际做到这一点。
我只能使用循环(没有地图等),这就是我想出的:
public static void Page111Ex14(int[][] m) {
int previous = 0, h = 0;
int[] a = new int[m.length*m[0].length];
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[0].length; j++) {
previous = m[i][j];
if (m[i][j] != previous) {
a[h] = m[i][j];
h++;
}
}
}
这可能是不正确的。
【问题讨论】:
-
如果你有任何起始代码,那会很有帮助
-
使用
Map并计算每个数字的出现次数。 -
你可以使用列表还是只使用循环和实际的普通数组?
-
您还知道其他限制吗?该数字可以是从 Integer.MIN_VALUE 到 Integer.MAX_VALUE 的整个范围内的任何整数吗?解决方案是否需要尽可能高效,或者这不是必需的?可以使用 ArrayList 吗?你可以使用自己的数据结构吗?比如,你能不能定义一个Node类,把它当成链表使用?
标签: java arrays for-loop matrix