【发布时间】:2017-11-18 19:11:57
【问题描述】:
我正在使用这种循环结构,但它无法生成任何给定具有 n 行和 m 列的二维矩阵的所有子矩阵。
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
System.out.println("sub-MATRIX:");
for(k=i;k<n;k++)
{
for(p=j;p<m;p++)
{
System.out.print(arr[k][p]+" ");
}
System.out.println();
}
}
}
例如:给定矩阵 3X3:[[1 2 3],[4 5 6],[7 8 9]] 那么它的子矩阵将是: 对于尺寸 1: [1],[2],[3],[4],[5],[6],[7],[8],[9] 尺寸 4: [[1,2],[4,5]],[[2,3],[5,6]],[[4,5],[7,8]] 和 [[5,6],[ 8,9]] 等等
【问题讨论】:
-
请提供更多细节:输入、预期输出、实际输出是多少?
-
子矩阵的大小?
-
这与 C++ 有什么关系?这听起来更像是一个算法问题
-
@K.Kirsz 我添加了一个示例。任务是在给定矩阵中生成所有可能的所有大小的子矩阵
-
这样想:你在 MxN 矩阵中寻找 UxV 矩阵的所有可能的左上角。有 (M-U+1) x (N-V+1) 个候选者。简单地遍历这些。