【发布时间】:2021-03-17 09:35:06
【问题描述】:
我有一个任务来实现矩阵类和一个检查矩阵是否对称的方法。 该方法必须是递归的,然后我必须计算它的复杂性。在我必须将递归函数转换为其迭代版本之后。
现在这是我的矩阵类的样子:
public class Matrix<T> {
private int m, n;
private T[][] data;
public Matrix(int m, int n) {
this.m = m;
this.n = n;
}
public Matrix(T[][] data) {
this.data = data;
}
public boolean isSymmetric() {
if (m != n) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (data[i][j] != data[j][i]) {
return false;
}
}
}
return true;
}
return false;
}
public boolean isSymmetric(int i, int j) {
if (i < 0 && j < 0) return true;
else {
return isSymmetric(i - 1, j - 1);
}
}
public T get(int i, int j) {
return data[i][j];
}
public void set(int i, int j, T value) {
data[i][j] = value;
}
public int[] getSize() {
return new int[]{m, n};
}
@Override
public String toString() {
String rep = "";
for (int i = 0; i < m; i++) {
rep += "( ";
for (int j = 0; j < n; j++) {
rep += data[i][j].toString() + "\t";
}
rep += ")\n";
}
return rep;
}
}
我有 isSymmetric() 函数的迭代版本,但我无法获得递归版本。
【问题讨论】:
标签: java arrays recursion matrix symmetric