我在将矢量分成2D矩阵或给定边时遇到了麻烦。例如,给定向量{1,2,3,4,5,6,7,8,9,10,11,12},行(3)和列(4)可以转换为{{1 ,2,3,4},{5,6,7,8},{9,10,11,12}}。
到目前为止,代码只是打印出一个数组中的整个向量,无论它们是多少行。
int[][] reshape(int[] vector, int row, int col) {
if (!isReshapable(vector.length, row, col)) {
return null;
} else {
int[][] matrix = new int[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
Arrays.fill(matrix, vector);
}
}
return matrix;
}
}
答案 0 :(得分:1)
您正在重复i
和j
。您可以使用它们(以及vector
中的位置),例如
int p = 0;
int[][] matrix = new int[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++, p++) {
matrix[i][j] = vector[p];
}
}