剑指Offer——二维数组的查找(C语言)
题目
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
数据范围
二维数组中元素个数范围 [0,1000]
样例
输入数组:[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]
]如果输入查找数值为7,则返回true,如果输入查找数值为5,则返回false。
解题思路
数组每一行都递增,每一列也都递增,从第一行开始比较,确立范围,然后从列继续比较索引,返回true或false
TIP
考虑target在数组左右范围之外;考虑数组为空的情况
代码
bool searchArray(int** array, int arrayRowSize, int arrayColSize, int target) {if(arrayRowSize==0 || arrayColSize==0) return false;if(target < **array || target > *(*(array+arrayRowSize-1)+arrayColSize-1)) return false;int i,j;for(i=0;*(*array+i)<=target && i<arrayColSize;i++); //确立所在行数为i-1for(j=0;j<arrayRowSize;j++){if(*(*(array+j)+i-1) == target) return true;}return false;
}
剑指Offer——二维数组的查找(C语言)相关推荐
- 剑指Offer 二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路法一: * 矩阵是 ...
- python 二维数组长度_剑指offer二维数组中的查找【Java+Python】
点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...
- 剑指offer - 二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. /* 思路 * 矩阵是 ...
- 【二分法】剑指offer:二维数组中的查找
对于二维数组中每一个一维数组,用二分查找,判断能否找到该数 leetcode专题笔记:二分法查找(1)(附leetcode题)_m0_52043808的博客-CSDN博客 代码: class Solu ...
- 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找
算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...
- 《剑指Offer》 二维数组的查找 C语言版本
文章目录 前言 题目解析 图片演示 target = 7 1.从矩阵左下角元素开始遍历,将其与目标值进行对比 2.元素18大于目标值7,行`row`索引向上移动一格 3.元素10大于目标值7,行`ro ...
- 剑指offer 二维有序数组查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. java 解决方案:暴 ...
- 剑指0ffer04.二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例: 现 ...
- 剑指Offer04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 相当于二叉 ...
最新文章
- 那些巨头公司的前端面试都喜欢问些什么?
- Volley源码分析
- “玩转课堂”软件需求规格说明
- BRCM eCos下的编译及问题
- 19-chgrp命令
- php根据字符串生成变量名,PHP 自定义字符串中的变量名解析
- C语言的VC开发环境界面介绍,【c语言在vc++6.0中编写界面程序】
- lazada发货_Lazada 怎么发货:Lazada 订单发货流程
- mysql 默认事务隔离级别_详解MySQL事务的四大特性和隔离级别
- oracle交叉运算符,Oracle语句优化44个规则详解
- 构建元宇宙概念NFT商城系统——艺术数字藏品平台源码部署
- 【转载】装机知识显卡篇,一篇文章让小白透彻的了解显卡
- 查看linux进程日志,查看linux日志_查看linux日志的方法
- 狂热分子——码头工人的哲学沉思录
- 大数据分析,数据可视化之美,BI
- SQLite入门之读取手机短信
- android ps2 模拟器,手机目前安卓系统PS2模拟器最好用的是一款叫做呆萌PS2模拟器的APP!这一款竟然是国产的!...
- 第二十二章 Unity 光照贴图
- 【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
- python人机对战_【人机对战】用python打造经典井字游戏
热门文章
- 微带线,带状线和接地共面波导的区别
- java 动态规划 硬币_硬币问题-动态规划详解
- IP属地的功能是如何实现的呢,简单实现获取ip地址和IP属地。
- python找出图中所有闭合环_这可能是史上最全的 Python 算法集(建议收藏)
- 状态错误CS0234命名空间“Windows”中不存在类型或命名空间名“Management”(是否缺少程序集引用?)
- [BLE--SMP]蓝牙安全管理之BLE的安全
- 微信小程序添加音乐组件
- 使用mapbox+turf.js完成迁徙图,流向图教程
- 对iOS开发有用的一些自动化处理脚本
- 参加七牛云“PISA”发布会随想录