//题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,
输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
/*第一种  将每一行看成递增数组  进行二分查找*/
function Find($target, $array)
{//第一种解法:将每一行看成有序递增数组  进行二分查找//获得行$hang=count($array);$lie=count($array[0]);for($i=0;$i<$hang;$i++){//每行$s=0;$h=$lie-1;while($s<=$h){$middle=(int)(($s+$h)/2);if($target<$array[$i][$middle]){$h=$middle-1;}elseif($target>$array[$i][$middle]){$s=$middle+1;}else{return true;}}}return false;}/*第二种  先变成一维数组   再进行顺序查找*/
function Find($target, $array)
{//思路:先变成一维数组  再进行顺序查找$res=[];foreach($array as $k1=>$v1){foreach($v1 as $k2=>$v2){$res[]=$v2;}}//对res进行顺序查找$count=count($res);for($i=0;$i<$count;$i++){if($target==$res[$i]){break;}}if($i<$count){return true;}else{return false;}}/*第三种  左下角数组向上递减  向右递增  取左下角值与target进行比较  target小于左下角则向上移动  大于则向右移动*/
function Find($target, $array){$hang=count($array)-1;$lie=count($array[0])-1;$zuoxia=$array[0][$hang-1];$row=$hang;$col=0;while ( $row>=0 && $col <=$lie) {if($target>$array[$row][$col]){$col++;}elseif ($target<$array[$row][$col]) {$row--;}else{return true;}}return false;
}

牛客网-剑指offer 第一题(二维数组中的查找)相关推荐

  1. 【剑指offer题解】二维数组中的查找

    前言 众所周知,对于面试而言,<剑指offer>是一本"好书". 如果你和我一样是个算法菜鸡,那么最推荐的是先把剑指offer的题目搞明白,其次再去刷LeetCode等 ...

  2. 萌萌媛の【剑指offer笔记】二维数组中的查找

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

  3. 剑指offer(一):二维数组中的查找

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

  4. 剑指offer (04):二维数组中的查找 (C++ Python 实现)

    1 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 例如: ⎡⎣⎢⎢⎢12 ...

  5. 《剑指offer》——04. 二维数组中的查找——暴力法、线性查找——java实现

    文章目录 1.题目描述 2.解决方法 (1)暴力法 (2)线性查找(右上角->左下角) 参考: 1.题目描述 2.解决方法 (1)暴力法 如果不考虑二维数组排好序的特点,则直接遍历整个二维数组的 ...

  6. 【剑指offer】_01 (二维数组中的查找)

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

  7. Day5.牛客网剑指offer 67题之43-54题(java代码)

    文章目录 Day5.牛客网剑指offer 67题之43-54题 43.左旋转字符串 44.翻转单词顺序列 45.扑克牌顺序 46.孩子们的游戏 47.求1+2+...+n 48.不用加减乘除做加法 4 ...

  8. string类函数和牛客网剑指offer刷题记录

    1.strcat char* strcat(char *strDest,const char *strSrc){assert(strDest && strSrc);char *p = ...

  9. 牛客网-剑指offer 第二题(字符替换)

    //请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. <?php f ...

最新文章

  1. UVA 311 Packets
  2. 2020年github文件高速下载方法
  3. Git版本库创建(包含文件权限设置 Linux环境下)
  4. ITK:二进制图像的近似距离图
  5. 150个Java面试问答-最终清单(PDF下载)
  6. Liunx下使用Nginx负载均衡
  7. java实现冗余校验_循环冗余校验_循环冗余校验码计算_循环冗余校验 java实现(6)...
  8. Istio流量管理实践之(3): 基于Istio实现流量对比分析 1
  9. 自定义List接口及相关方法
  10. 网络通信基础(入门知识总结)
  11. 【多元统计分析】10.多元线性回归
  12. 创业4年女掌门刘静瑜,创造动力电池,中创新航市值超600亿
  13. 《人机交互技术》 第八章 移动界面设计
  14. 隧道安全管理八大系统
  15. 计算机组装方案及分析,计算机组装与维护
  16. android绘画板界面,手机绘画板(MediBang Paint Tablet)
  17. OSCS开源软件供应链安全社区上线,携手开源社区共同提升开源安全质量
  18. edas上传pdf 失败
  19. ubuntu WPS升级后打不开
  20. Python3 定义一个跨越多行的字符串的多种方法

热门文章

  1. TCP/UDP常见端口参考(超全_面试题常用_建议收藏)
  2. 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】
  3. Oracle 11g 中告警日志的位置
  4. Linux下rm -rf 后恢复文件
  5. php - 冒泡排序
  6. Appscan漏洞 之 加密会话(SSL)Cookie 中缺少 Secure 属性
  7. Django-MySQL数据库使用01
  8. django(7)modelform操作及验证、ajax操作普通表单数据提交、文件上传、富文本框基本使用...
  9. KnockoutJS 3.X API 第一章 简介
  10. NYOJ541 最强DE 战斗力(第五届省赛试题)