java - 2个不同二维数组的总和
问题描述
我需要帮助编写一种方法来找出 2 个不同大小的 2D 数组的总和。
public static int[][] summary(int[][] tab1, int[][] tab2, int x) {
int[][] finalTab = new int[4][5]; // I took sizes of bigger one
if (x < 0) {
for (int i = 0; i < finalTab.length - 1; i++) {
for (int j = 0; j < finalTab[i].length - 1; j++) {
finalTab[i][j] = tab1[i][j] + tab2[i][j];
if (tab1[i][j] == 0) {
finalTab[i][j] = tab2[i][j];
}
}
}
for (int i = 0; i < finalTab.length; i++) {
for (int j = 0; j < finalTab[i].length; j++) {
System.out.print(" " + finalTab[i][j] + " ");
}
System.out.println();
}
}
return finalTab;
}
输入是:
int[][] tab1 = {
{2, 4, 6, 8},
{2, 4, 6, 8},
{2, 4, 6, 8}};
int[][] tab2 = {
{1, 3, 5, 7, 9},
{1, 3, 5, 7, 9},
{1, 3, 5, 7, 9},
{1, 3, 5, 7, 9}};
输出是:
3 7 11 15 0
3 7 11 15 0
3 7 11 15 0
0 0 0 0 0
输出应该是:
3 7 11 15 9
3 7 11 15 9
3 7 11 15 9
1 3 5 7 9
如何0
用与索引对应的数字替换所有tab2
?
解决方案
你可以做得更通用
public static int[][] summary(int[][] tab1, int[][] tab2, int x) {
int maxLenX = tab1.length > tab2.length ? tab1.length : tab2.length;
int maxLenY = tab1[0].length > tab2[0].length ? tab1[0].length : tab2[0].length;
int[][] finalTab = new int[maxLenX][maxLenY]; // i took sizes of bigger one
if (x < 0) {
for (int i = 0; i <= finalTab.length - 1; i++) {
for (int j = 0; j <= finalTab[i].length - 1; j++) {
if (i > tab1.length - 1 || j > tab1[i].length - 1) {
finalTab[i][j] = tab2[i][j];
} else if (i > tab2.length - 1 || j > tab2[i].length - 1) {
finalTab[i][j] = tab1[i][j];
} else {
finalTab[i][j] = tab1[i][j] + tab2[i][j];
}
}
}
for (int i = 0; i < finalTab.length; i++) {
for (int j = 0; j < finalTab[i].length; j++) {
System.out.print(" " + finalTab[i][j] + " ");
}
System.out.println();
}
}
return finalTab;
}
所以你可以这样称呼它
summary(tab2, tab1, -1);
或者
summary(tab1, tab2, -1);
推荐阅读
- c# - 我创建了一个包含列表的表单,我正在尝试以新表单访问该列表
- excel - 出现运行时错误“13”:运行以下宏时类型不匹配
- python - 在烧瓶 API 中的烧瓶休息端点之间进行调用的正确方法是什么?
- sql - 循环遍历表并删除行时出错
- python - 如何基于索引python创建值列表
- sql - 对于具有某些相同字段的多行,保留具有更新值的行,并标记其他行
- excel - 从文件中找到字符串后提取某些行
- reactjs - 同时使用 Fuse js 过滤多个列表
- javascript - 检查时间是否在特定时间范围内
- json - 链接器无法从 json-glib 中找到“get_int_member_with_default”