本文共 1038 字,大约阅读时间需要 3 分钟。
题目描述
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-a-2d-matrix 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 输出:trueC++
我的超时。。。class Solution { //先按行折半查找,再按列折半查找public: bool searchMatrix(vector>& matrix, int target) { //先按行折半查 int first=0; int end=matrix.size()-1; int row; while(first
优化…
class Solution { /* 思路:根据矩阵的特点,以矩阵的最右上元素为根,是一棵二叉搜索树 */public: bool searchMatrix(vector>& matrix, int target) { if(matrix.size()==0) return false; int row=matrix.size(); int col=matrix[0].size(); int i=0; int j=col-1; while(i =0){ if(target==matrix[i][j]) return true; else if(matrix[i][j]>target) j--; else if(matrix[i][j]