标签:矩阵 == 实现 特性 tar 高效 get 示例 搜索
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
示例 1:
输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true
mark
解决思路:
使用二分查找,m行n列的矩阵matrix共有mn个元素,其中第x个元素对应matrix中位置为[x/n][x%n]。
实现代码如下:
public static boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length; if (m == 0) return false; int n = matrix[0].length; int N = m*n; int l=0,h=N-1; int mid = (l+h)/2; int i,j; while(l<=h) { i = mid/n; j = mid%n; if (matrix[i][j] == target) return true; else if (target>matrix[i][j]) l = mid+1; else h = mid-1; mid = (l+h)/2; } return false; }
标签:矩阵 == 实现 特性 tar 高效 get 示例 搜索
原文地址:https://www.cnblogs.com/deltadeblog/p/9057978.html