本文共 546 字,大约阅读时间需要 1 分钟。
没想到方法一利用展开二维数组,二分查找,各个行的元素按照mod的变换来计算
将二维数组按行展开的话,就是一个排序的一维数组,因此通过一维数组的二分查找很容易得到答案。
class Solution {public: bool searchMatrix(vector> &matrix, int target) { int rows=matrix.size(); int cols=matrix[0].size(); int left=0,right=(rows*cols-1); int mid,r,c,val; while(left<=right){ mid=left+((right-left)>>1); r=mid/cols; c=mid%cols; if(matrix[r][c]==target) return true; if(matrix[r][c]
第二种方法
先通过二分查找元素所在的行,再在所在行通过二分查找元素。
转载地址:http://snwmj.baihongyu.com/