首页 > 解决方案 > 将二维数组拆分为多个部分

问题描述

对于我的算法和数据结构讲座中的一项任务,我需要找到一种方法将给定的二维数组拆分为多个部分。这是一个示例:程序k>0在开始时获取一个整数。数组大小是[k*k]x[k*k]因为k=3它会是这样的:

2  2  0  1  0  0  0  1  1  
1  0  1  2  1  0  1  0  0  
1  1  1  0  1  2  1  1  2  
2  2  2  2  2  0  0  2  0  
0  0  0  1  1  2  2  1  2  
1  2  2  1  2  0  0  0  1  
0  1  0  1  0  0  2  1  1  
2  1  0  1  0  2  2  2  2  
1  0  1  2  2  2  2  1  2  

我现在想将数组视为大小的部分k*k

2  2  0    1  0  0    0  1  1    
1  0  1    2  1  0    1  0  0    
1  1  1    0  1  2    1  1  2    

2  2  2    2  2  0    0  2  0    
0  0  0    1  1  2    2  1  2    
1  2  2    1  2  0    0  0  1    

0  1  0    1  0  0    2  1  1    
2  1  0    1  0  2    2  2  2    
1  0  1    2  2  2    2  1  2  

我现在的任务是添加每个段的整数并将它们存储在 size 的数组中k*k。现在,我不幸地只得到错误的输出。这个或某种具有这种功能的库是否有技巧?

标签: javaarraysmultidimensional-arraysplit

解决方案


这是我到目前为止的想法。我想我搞砸了循环:

private static ArrayList<Integer> getPathZij() {
    ArrayList<Integer> list = new ArrayList<>();
    int k = (int) Math.sqrt(map.length);
    for (int v = k; v < map.length; v = v + k) {
        for (int i = v - k; i < v; i++) {
            int value = 0;
            for (int j = v - k; j < v; j++) {
                value = value + map[i][j];
            }
            list.add(value);
        }
    }
    return list;
}

推荐阅读