problem: https://leetcode.com/problems/search-a-2d-matrix/
经典二分搜索。本质上还是一维数组。
class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int m = matrix.size(); if(!m) return false; int n = matrix[0].size(); if(!n) return false; int low = 0; int high = m * n - 1; while(low <= high) { int mid = (low + high) / 2; int i = mid / n; int j = mid % n; if(matrix[i][j] == target) { return true; } else if(matrix[i][j] > target) { high = mid - 1; } else { low = mid + 1; } } return false; } };