博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Search a 2D Matrix
阅读量:5079 次
发布时间:2019-06-12

本文共 1186 字,大约阅读时间需要 3 分钟。

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

 

思路:1.二分比较判断可能在哪一行,确定searchRow,再在searchRow中二分找

2. 当成线性表,来二分找。

注意:这两个的复杂度???? 1.O(lgm+lgn) 2.O(lg(m*n))

 

class Solution {public:    bool searchMatrix(vector
> &matrix, int target) { if(matrix.empty()) return false; int row = matrix.size(); int rowA=0; int rowB = row-1; int rowMid=0; int searchRow; while(rowA
=matrix[rowMid-1][0]){searchRow=rowMid-1;break;} else rowB=rowMid-2; }else{ if(target
matrix[searchRow][colB]) return false; while(colA<=colB){ colMid = (colA+colB)/2; if(target==matrix[searchRow][colMid]) return true; if(target

 

转载于:https://www.cnblogs.com/renrenbinbin/p/4333325.html

你可能感兴趣的文章
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
django Models 常用的字段和参数
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
关于indexOf的使用
查看>>
英语单词
查看>>
Mongo自动备份
查看>>