Search a 2D Matrix
来源:互联网 发布:淘宝店铺彻底释放 编辑:程序博客网 时间:2024/06/05 05:39
https://oj.leetcode.com/problems/search-a-2d-matrix/
1、题目要求:在一个m×n的矩阵matrix里面查找目标值target,如果查找成功返回true,否则返回false。
矩阵matrix的具有以下性质:
1)矩阵每行的元素从左到右递增排序;
2)每行的第一个元素比上一行的最后一个元素大;
例:假设个定矩阵如下,给定目标值target= 3, 则返回true.
[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]
2、解题思路:用每行的第一个元素进行二分查找,确定target所在行,然后在所在行进行二分查找;
class Solution {public: bool searchMatrix(vector<vector<int> > &matrix, int target) { int n= matrix.size(); int left= 0, right= n-1, mid; //首先找到target所在的行 while(left<=right) { mid= (left+right)/2; if(target>matrix[mid][0]) left= mid+1; else if(target<matrix[mid][0]) right= mid-1; else return true; } //如果target比最小值还小,说明查找失败 if (left == 0) return false;//此时left保持的就是target插入的位置(行标号),所以我们应该在left的上一行中查找target int row= left-1; left= 0, right= matrix[row].size()-1; while(left<=right) { mid= (left+right)/2; if(target>matrix[row][mid]) left= mid+1; else if(target<matrix[row][mid]) right= mid-1; else return true; } return false; }};
0 0
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D matrix
- Search a 2D matrix
- 顺序表的实现(王红梅版)
- linux常用命令详解
- ITK的图像配准
- 手把手教你怎么使用支付宝快捷支付android版demo
- 快速排序算法
- Search a 2D Matrix
- 键盘录入
- 求数列的和
- 使用spring data jpa + maven开发服务端接口
- java环境变量中 用户变量与系统变量的区别
- varchar和Nvarchar区别
- 为什么营养保健品需要坚持用3-6个月才会达到明显效果呢?
- 利用JS弹出层实现简单的动态提示“正在加载中,请稍等...
- Codeforces #282 div 1 C Helping People 题解