题解 | #寻找牛群中的特定编号牛# java
寻找牛群中的特定编号牛
https://www.nowcoder.com/practice/e0c6f3fba6dd40b99e8bcc0241631f9d
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param matrix int整型二维数组
* @param target int整型
* @return bool布尔型
*/
public boolean searchMatrix (int[][] matrix, int target) {
// write code here
// 获取二维数组的行数和列数
int m = matrix.length;
int n = matrix[0].length;
// 从右上角开始搜索
int row = 0;
int col = n - 1;
while (row < m && col >= 0) {
if (matrix[row][col] == target) {
// 找到目标数值
return true;
} else if (matrix[row][col] > target) {
// 当前元素大于目标数值,目标数值可能在当前元素的下方
row++;
} else {
// 当前元素小于目标数值,目标数值可能在当前元素的左侧
col--;
}
}
// 在循环中未找到目标数值,返回false
return false;
}
}
编程语言是Java。
该题考察的知识点是在二维矩阵中搜索目标数值。
代码的文字解释如下:
- searchMatrix方法接受一个二维整型数组matrix和一个整型数值target作为参数,返回一个布尔型结果表示是否找到目标数值。
- 获取二维数组的行数m和列数n。
- 从右上角开始进行搜索。初始化row为0,col为n - 1。
- 在循环中,判断当前元素是否等于目标数值:如果相等,说明找到了目标数值,返回true。如果当前元素大于目标数值,说明目标数值可能在当前元素的下方,将row加1。如果当前元素小于目标数值,说明目标数值可能在当前元素的左侧,将col减1。
- 如果循环中未找到目标数值,返回false。

查看2道真题和解析