lectcode-搜索二维矩阵
要求 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 示例 2: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 13 输出: false 代码 顺序查找,先确定行,再确定列。 bool searchMatrix(vector<vector<int>>& matrix, int target) { int m = matrix.size(); int i = 0; if(m==0) return false; int n = matrix[0].size(); if(n==0) return false; for(;i<m;i++) { if(n==1&&matrix[i][0]==target) return true; if(n>1&&matrix[i][0]<=target&&target<=matrix[i][n-1]) break; } if(i==m) i = i-1