题解 | #寻找牛群中的特定编号牛#
寻找牛群中的特定编号牛
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 left = 0; int right = m*n-1; while(left<=right){ int mid = left + (right-left)/2; int num = matrix[mid/n][mid%n]; if(num==target){ return true; }else if(num<target){ right = mid-1; }else{ left = mid+1; } } return false; } }
首先将二维牛棚转换为一维数组,然后在一维数组上进行二分查找。将一维索引映射回二维数组的行和列是通过除法和取余数来实现的。