leetcode——Search a 2D Matrix 二维有序数组查找(AC)
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
- Integers in each row are sorted from left to right.
- The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Given target = 3, return true.
假设直接对矩阵元素进行二分查找的话,时间复杂度是O(m*n),事实上非常easy想到先通过查找找到相应可能存在于哪一行,然后再在那行中查找是否存在,採用最简单的直接查找这样时间复杂度仅有O(m+n),假设这两次查找再分别採用二分查找的话,时间复杂度更能够减少到O(logm+logn),以下是O(m+n)的代码:
class Solution {
public:
    bool searchMatrix(vector<vector<int> > &matrix, int target) {
        if(matrix.empty())
            return false;
        int m = matrix.size();
        int n = matrix[0].size();
        int i = 0, j=0;
        while(i<m && target>=matrix[i][0])
            i++;
        i--;
        if(i==-1)
            return false;
        while(j<n)
        {
            if(target == matrix[i][j])
                return true;
            else
                j++;
        }
        return false;
    }
};
leetcode——Search a 2D Matrix 二维有序数组查找(AC)的更多相关文章
- [算法][LeetCode]Search a 2D Matrix——二维数组的二分查找
		题目要求 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the ... 
- [LeetCode] Search a 2D Matrix  搜索一个二维矩阵
		Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ... 
- [LeetCode] Search a 2D Matrix II 搜索一个二维矩阵之二
		Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ... 
- LeetCode Search a 2D Matrix II
		原题链接在这里:https://leetcode.com/problems/search-a-2d-matrix-ii/ Write an efficient algorithm that searc ... 
- LeetCode -- Search a 2D Matrix & Search a 2D Matrix II
		Question: Search a 2D Matrix Write an efficient algorithm that searches for a value in an m x n matr ... 
- LeetCode: Search a 2D Matrix  解题报告
		Search a 2D Matrix Write an efficient algorithm that searches for a value in an m x n matrix. This m ... 
- [Leetcode] search a 2d matrix 搜索二维矩阵
		Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ... 
- LeetCode  Search a 2D Matrix(二分查找)
		题意: 有一个矩阵,每行都有序,每行接在上一行尾后仍然有序.在此矩阵中查找是否存在某个数target. 思路: 这相当于用一个指针连续扫二维数组一样,一直p++就能到最后一个元素了.由于用vector ... 
- [LeetCode] Search a 2D Matrix [25]
		题目 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the fo ... 
随机推荐
- An update on OS X Code Signing(OS X代码签名)
			There has recently been updates to the OS X code signing process. These updates also affect Qt appli ... 
- C++ 表达式语句 海伦的故事
			C++ 表达式语句 海伦的故事 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 把今天当成最后一天来过.-海伦 请读者在 ... 
- iOS  判断有无网络连接
			众所周知,我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的网络连接状态,如果没有网络,就不再请求url,省去不必要的步骤,所以,这个如何判断?其实很简单. 前提:工程添加:Syste ... 
- ecshop后台添加栏目
			ecshop后台增加模块菜单详细教程 一:ecshop后台管理 admin\includes\inc_menu.php 添加上你要添加的功能admin\includes\inc_priv.php 对应 ... 
- ASP.NET MVC 5 学习教程:控制器传递数据给视图
			原文 ASP.NET MVC 5 学习教程:控制器传递数据给视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字 ... 
- 编译原理Tiny语言的定义
			Here is the definition for Tiny language The Tiny lexicon is as follows: Keywords: IF ELSE WRITE R ... 
- 设计模式(十)享元模式Flyweight(结构型)
			设计模式(十)享元模式Flyweight(结构型) 说明: 相对于其它模式,Flyweight模式在PHP实现似乎没有太大的意义,因为PHP的生命周期就在一个请求,请求执行完了,php占用的资源都被释 ... 
- HttpComponents 也就是以前的httpclient项目
			HttpComponents 也就是以前的httpclient项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端/服务器编程工具包,并且它支持 HTTP 协议最新的版本和建议.不 ... 
- 基于visual Studio2013解决算法导论之046广度优先搜索
			 题目 广度优先搜索 解决代码及点评 // 图的邻接表表示.cpp : 定义控制台应用程序的入口点. // #include <iostream> #include <stac ... 
- KINGSO介绍
			kingso_intro - Taocode KINGSO介绍 KINGSO是一种高效的垂直化的搜索引擎,其包含query解析.检索.过滤.统计.排序功能,不包含抓取部分.它对商品搜索做了针对性的优化 ... 
