1,二维数组中的查找《剑指offer》
题目:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
因为从左到右递增,从上到下递增,所以很容易发现是二分查找的变体,需要找到一个点(p),左边的数比这个数小,右边的比他大,所以又可以知道右上角的数字都是满足这个条件的;然后通过比较右上角的数字和目标数字的大小(target):
1.如果 比target大,那么证明这个数所在列不可能存在这个数字,可以将整列排除(col--);
2.如果比target小,那么证明这个数字所在的行不可能存在这个数字,将整行排除( row++ );
直到循环结束,或者找到该数字;
代码:
//c++
bool Find(int target, vector<vector<int> > array) {int rows=array.size();int cols=array[0].size();int row=0;int col=cols-1;while(row<rows&&col>-1){if(array[row][col]==target)return true;else if(array[row][col]>target)--col;else ++row;}return false;}
转载于:https://www.cnblogs.com/llauser/p/7472572.html
1,二维数组中的查找《剑指offer》相关推荐
- 二维数组中的查找---剑指Offer
二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 代码如下: p ...
- 二维数组的空间复杂度_剑指 offer 面试题精选图解 04 . 二维数组中的查找
点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:程序员吴师兄 今天分享的题目来源于 LeetCode 上的剑指 Offer ...
- [剑指Offer]5.二维数组中的查找
题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...
- 算法题001 剑指Offer 面试题三:二维数组中的查找
剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...
- 剑指Offer #01 二维数组中的查找(Java描述)
题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...
- 剑指offer:二维数组中的查找
目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...
- 【LeetCode】剑指 Offer 04. 二维数组中的查找
[LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...
- 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找
难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...
- 剑指offer刷题 04. 二维数组中的查找
剑指 Offer 04. 二维数组中的查找 1. 问题描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一 ...
- 剑指offer——面试题3:二维数组中的查找
剑指offer--面试题3:二维数组中的查找 1.笨蛋方法 复杂度为O(n2)O(n^2)O(n2) class Solution { public:bool Find(int target, vec ...
最新文章
- 在Service中通过WindowManger添加View的方式来把UI界面显示出来
- SpringCloud学习笔记:服务注册与发现Eureka(2)
- php debug用什么意思,phpdebug_backtrace()函数是干什么的?
- P2048-[NOI2010]超级钢琴【RMQ,堆】
- java检查两个字符串是否包含,java判断一个字符串是否包含另外一个字符串,java另外一个,要检查一个字符串是否包含...
- libevent编程疑难解答
- 恒大汽车向技术人员等授出3.24亿股购股权:占公司股本的3.31%
- 使用samba软件实现局域网共享文件
- Apache Spark 完全替代传统数仓的技术挑战及实践
- 软件测试工程师需要掌握哪些技能呢?
- DUXCMS 2.x学习问题(一)
- 字节和兆字节的换算_什么是兆字节(MB)?
- 数学基础知识(公式)不用学太深,了解基本公式即可,遇到问题再查吧。
- C# CAD二次开发之基本图形
- CRC循环冗余校验码总结
- 计算机桌面音量键在哪,win7系统控制音量的快捷方式有哪些
- easyui SWFUpload
- android http zlib,利用zlib库对HTTP收到的gzip数据解压
- 基于SSM的进销存管理系统设计与实现
- 阿里云短信使用简介demo
热门文章
- 读书笔记-你不知道的JavaScript(上)
- 修改/etc/resolv.conf又恢复到原来的状态?[转]
- 20135219洪韶武——信息安全系统设计基础第四周学习总结
- js实现IE、谷歌浏览器打印网页内容
- LeetCode(821)——字符的最短距离(JavaScript)
- AI 是否会取代计算机程序员
- 股票市值管理什么意思?
- 2021年是“三蛇闹春,十鼠抢粮,十一牛耕田”,啥意思?
- 你们的苹果手机,关闭哪些功能比较省电?
- Even better, if you don’t want to answer and