题解 | #牛群避免水洼# java
牛群避免水洼
https://www.nowcoder.com/practice/43ba14f2c7344ec5bccdf2d650f2eaf2
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型二维数组 */ public int[][] avoidPuddles (int[][] matrix) { // write code here int m = matrix.length; int n = matrix[0].length; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (matrix[i][j] == 0) { for (int k = 0; k < n; k++) { matrix[i][k] = -1; } for (int k = 0; k < m; k++) { matrix[k][j] = -1; } } } } return matrix; } }
使用的是Java语言
考察的是二维数组的遍历和修改。给定一个二维数组matrix
,其中的元素表示一个地图的状况,0表示水坑,其他非零数字表示平地。你需要将水坑所在的行和列上的元素都修改为-1,并返回修改后的二维数组。
代码的解释如下:
- 定义一个函数
avoidPuddles
,接受一个二维整型数组matrix
作为参数,并返回一个二维整型数组。 - 获取矩阵的行数
m
和列数n
。 - 使用两个嵌套的循环遍历矩阵中的每个元素。外层循环控制行,内层循环控制列。
- 当遇到值为0的元素时,说明该位置是水坑。
- 遍历该水坑所在的行,将所有元素修改为-1。
- 遍历该水坑所在的列,将所有元素修改为-1。
- 遍历完成后,返回修改后的二维数组作为结果。
这段代码通过双重循环遍历二维数组,当遇到水坑时,将其所在行和列上的元素修改为-1,实现了避开水坑的目标。
使用双重循环遍历矩阵,当遇到值为0的元素时,将其所在行和列上的元素设置为-1。最后,返回修改后的矩阵作为结果。