java - 在java中替换二维数组中的数字?
问题描述
我有一个函数可以找到第一个最小值并从二维数组中返回它:
public static int getMinimumValueOfTerrain(int[][] terrain) {
int min = Integer.MAX_VALUE;
for (int row = 0; row < terrain.length; row++) {
for (int col = 0; col < terrain[row].length; col++) {
min = Math.min(min, terrain[row][col]);
}
}
return min;
}
我有另一个函数应该用它的负值替换找到的最小值:
public static int[][] replaceMinusValue(int[][] terrain) {
for (int row = 0; row < terrain.length; row++) {
for (int col = 0; col < terrain[row].length; col++) {
int tempValue = getMinimumValueOfTerrain(terrain);
int minusValue = -tempValue;
}
}
return terrain;
}
例子:
2 | 1 | 3 |
3 | 2 | 1 |
4 | 2 | 5 |
预期结果:
2 | -1 | 3 |
3 | 2 | 1 |
4 | 2 | 5 |
我怎样才能用我的功能来处理它?
解决方案
您有多种选择。如果你只这样做一次或者效率无关紧要,你可以遍历整个数组并找到最小的元素,然后替换该元素。例如:
public static void replaceMinusValue(int[][] terrain) {
int min = Integer.MAX_VALUE;
int minI = -1;
int minJ = -1;
for (int i = 0; i < terrain.length; i++) {
for (int j = 0; j < terrain[i].length; j++) {
if (terrain[i][j] < min) {
min = terrain[i][j];
minI = i;
minJ = j;
}
}
}
terrain[minI][minJ] *= -1;
}
会那样做。请注意,您不需要在翻转后返回地形(就像您在排序时不返回新数组一样)。
推荐阅读
- qml - 自定义 Controls 2 SpinBox 时出错
- odoo - Odoo 12:向表单视图添加自定义侧边栏
- scala - MyClass 和 MyClass.this.type 之间有什么区别以及如何将其转换为另一个?
- r - 提取经纬度点的气候和土壤数据
- python - 在向导中设置必填字段之前的 Odoo 10 可点击按钮
- unity3d - unity:未赋值Movement的变量rb
- python - 如何在不重叠字符串的情况下很好地返回可变长度字符串的输出?
- tomcat - Tomcat 无法从 [/opt/App1/conf/server.xml] 加载服务器配置
- java - JavaFx 修复表行
- python - 使用交叉比率的点投影在特定阈值后完全错误