当前位置: 首页 > news >正文

剑指offer(c++)-02.二维数组中的查找

2.二维数组中的查找

题目:

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

如:target = 7,
二维数组如下:
[
[1,2, 8, 9 ],
[2,4, 9, 12],
[4,7,10,13],
[6,8,11,15]
]

二分值法

思想:(拐点为二分值)

  1. 观察数字的规律,第一行与最后一列构成递增数列(1,2,8,9,12,13,15),第二行与倒数第二列构成递增数列(2,4,9,10,11)…因此可利用拐点(加粗数字)作为判断条件
  2. 当target = 拐点数字,则相等,输出true
  3. 当target > 拐点数字(说明target在更大位置,即列不变行增加),则行增加,即row++
  4. 当target < 拐点数字(说明target在更小位置,即列缩小继续查找),则列减少,即col–
  5. 遍历未找出,输出false
class Solution {
	// target: 需要查找的值
	// array: 输入数组
public:
    bool Find(int target, vector<vector<int> > array) {
        if(array.empty() || array[0].empty()) return false;
        
        int row = 0,col = array[0].size() - 1;
        while(row <= array.size() -1 && col >= 0){
            if(array[row][col] == target) return true;
            if(array[row][col] > target) col--;
            else row++;
        }
        return false;
    }
};

相关文章:

  • 操作系统-01.操作系统的运行机制和体系结构
  • 剑指offer(c++)-03.替换空格
  • 剑指offer(c++)-04.从尾到头打印链表
  • 操作系统-02.中断与异常及系统调用
  • 操作系统-03.进程的定义、组成、组织方式、特征
  • 操作系统-04.进程的状态与切换
  • 操作系统-05.进程控制
  • 操作系统-06.进程通信
  • 操作系统-06.线程概念、多线程模型
  • 操作系统-07.处理机调度概念、层次
  • 设计模式-01.面向对象七大设计原则
  • C++面向对象高级开发-01.C++ 类相关解析
  • C++面向对象高级开发-02.堆、栈与内存管理
  • C++面向对象高级开发-03.指针与引用
  • JAVA-IDEA-Tomcat 完美解决乱码
  • [case10]使用RSQL实现端到端的动态查询
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • C学习-枚举(九)
  • laravel 用artisan创建自己的模板
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL几个简单SQL的优化
  • Nacos系列:Nacos的Java SDK使用
  • Selenium实战教程系列(二)---元素定位
  • Vue2.x学习三:事件处理生命周期钩子
  • Vue官网教程学习过程中值得记录的一些事情
  • 包装类对象
  • 记一次和乔布斯合作最难忘的经历
  • 码农张的Bug人生 - 初来乍到
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 一天一个设计模式之JS实现——适配器模式
  • 一文看透浏览器架构
  • puppet连载22:define用法
  • zabbix3.2监控linux磁盘IO
  • 阿里云服务器如何修改远程端口?
  • 国内开源镜像站点
  • 通过调用文摘列表API获取文摘
  • "无招胜有招"nbsp;史上最全的互…
  • #NOIP 2014# day.2 T2 寻找道路
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (三分钟)速览传统边缘检测算子
  • (转)Sublime Text3配置Lua运行环境
  • (转)关于多人操作数据的处理策略
  • .NET Core 中插件式开发实现
  • .Net 代码性能 - (1)
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net反编译工具
  • .Net面试题4
  • .Net中wcf服务生成及调用
  • @AutoConfigurationPackage的使用
  • @软考考生,这份软考高分攻略你须知道