【发布时间】:2019-12-03 19:18:59
【问题描述】:
我在一次面试中得到了一个任务,给了我一个矩阵,现在我需要使用下面的公式从中生成另一个矩阵:
给定矩阵A[R][C],生成B[R][C]
val = 0;
for (i = 0; i ≤ xPosition; i += 1) {
for (j = 0; j ≤ yPosition; j += 1) {
val = val + a(i, j);
}
}
B(xPosition,yPosition) = val;
我想出了以下代码:
public List<List<Integer>> generate(List<List<Integer>> A) {
List<List<Integer>> top = new ArrayList<>();
for (int i = 0; i < A.size(); i++) {
List<Integer> inner = new ArrayList<>();
for (int j = 0; j < A.get(0).size(); j++) {
inner.add(generateValue(A, i, j));
}
top.add(inner);
}
return top;
}
int generateValue(List<List<Integer>> A, int xPosition, int yPosition) {
int val = 0;
for (int i = 0; i <= xPosition; i++) {
for (int j = 0; j <= yPosition; j++) {
int value = A.get(i).get(j);
val += value;
}
}
return val;
}
示例输入:
1 2 3
4 5 6
输出:
1 3 6
5 12 21
如何提高这个逻辑的性能?
【问题讨论】:
-
嗨!我认为您的问题在这里是题外话,但在 Code Review 网站上的主题。
-
您是否发送了您的代码?考虑雇用你的公司会怎么想你寻求帮助?
-
@MicheleDorigatti,这是几天前被问到的,我只是想知道我在解决这个简单的逻辑时哪里出错了。
-
重新计算每个元素的值