java - 将二维数组拆分为多个部分
问题描述
对于我的算法和数据结构讲座中的一项任务,我需要找到一种方法将给定的二维数组拆分为多个部分。这是一个示例:程序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
。现在,我不幸地只得到错误的输出。这个或某种具有这种功能的库是否有技巧?
解决方案
这是我到目前为止的想法。我想我搞砸了循环:
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;
}
推荐阅读
- javascript - Vue-router - 当用户点击菜单链接时如何取消操作
- c# - 使用 1 个查询字符串将 3 个文本框值从 Gridview 传递到另一个页面
- c# - 基于鼠标输入的对角相机围绕对象旋转的钳位问题
- linux - Protostar,Linux 无法解析 'ftp.au.debian.org'
- actionscript-3 - 添加事件侦听器以在进入新场景时停止声音
- ruby-on-rails - Rails NoMethodError(Hyperclient:Module 的未定义方法“新”)
- javascript - 计算旋转(或旋转)
- validation - 需要帮助从应用程序脚本中的“范围列表”获取数据验证标准,以便我可以循环浏览这些值
- angular - 在Angular 9中重新签名时从组件B中的组件A获取变量
- java - 调整图形大小以适应java中的内部框架