题解 | #寻找牛群中的特定编号牛# 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。