读书笔记-剑指offer 面试题3
来源:互联网 发布:数据采集处理 dsp fpga 编辑:程序博客网 时间:2024/05/16 11:41
题目描述:在一个二维数组中,每行从左到右都是升序排列,每列从上到下也是升序排列,从一个二维数组中查找一个数是否存在
一般方法:遍历,这样最坏情况也要o(n)的时间
优化方法:假如要查找的数为a
由于每行和每列都是升序的,那么我们先从右上角开始找,
1,如果a等于右上角的这个数,则查找成功;
2,如果小于,则列数减一,或者把当前列删去,然后继续1
3,如果大于,则行数加一,或者把当前行删去,然后继续1
4,如果剩余行数为数组的行数,列数为0,则不存在
这样最坏的查找次数也就是(行数+列数);
实现代码:
bool find(int **p,int row,int col,int key){ bool flag=false; if(NULL!=p&&row>0&&col>0){int i=0,j=col-1;while(i<row&&j>=0){ if(p[i][j]==key){flag=true;break; } else if(p[i][j]<key)--j; else ++i;} } return flag;}
- 读书笔记-剑指offer 面试题3
- 读书笔记-剑指offer面试题4
- 剑指offer面试题3
- 《剑指offer》面试题3
- 剑指offer 面试题3
- 剑指offer面试题3
- 【面试题】剑指offer 3
- 剑指offer 面试题3
- 剑指offer 面试题
- 剑指offer面试题
- 《剑指offer》面试题3(2)
- 剑指Offer(面试题3~5)
- 剑指Offer面试题3 & Leetcode74
- 剑指offer面试题总结
- 剑指offer面试题06
- 剑指offer面试题 04
- 剑指offer 面试题07
- 剑指offer面试题08
- OpenStack基于Libvirt的虚拟化平台调度实现----Nova虚拟机启动源码实现(2)
- HDU 4681 String (动态规划)
- 回调设计模式
- android实例之——调用android系统相机、系统相册,并对得到的图片进行处理
- POJ 3071 Football (概率DP)
- 读书笔记-剑指offer 面试题3
- 水木机器学习
- [转载]Linux密码破解
- Android应用程序开机启动
- 程序员常去的一百个网站
- 新生活的开始
- 去除CAJviewer右上侧的广告栏位去除CAJviewer右上侧的广告栏位
- 函数返回类型为指针类型时的一些问题
- LeetCode-Binary Tree Level Order Traversal II