剑指offer编程题01
来源:互联网 发布:java高内聚低耦合 编辑:程序博客网 时间:2024/06/06 14:02
剑指offer编程题01
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
分析
如下图所示
以红线为对角线,处于对角线上的元素所在行的左侧都比该元素小,处于对角线上的元素所在行的右侧都比该元素大;处于对角线上的元素所在列上方元素都比该元素小,处于对角线上的元素所在列下方元素都比该元素大。
所以可以取i为行号,j为列号。i从最大开始,j从0开始,比较目标值与第行第0列的数,目标值大于该数,则j++,目标值小于该数则i–,知道找到为止。
c/c++代码:
class Solution {public: bool Find(int target, vector<vector<int> > array) { int rowCount = array.size(); int colCount = array[0].size(); int i,j; for(i=rowCount-1,j=0;i>=0&&j<colCount;){ if(target==array[i][j]){ return true; } if(target<array[i][j]){ i--; continue; } if(target>array[i][j]){ j++; continue; } } return false; }};
java代码:
public class Solution { public boolean Find(int target, int [][] array) { int rowCount = array.length; int colCount = array[0].length; int i,j; for(i=rowCount-1,j=0;i>=0&&j<colCount;){ if(target==array[i][j]){ return true; } if(target<array[i][j]){ i--; continue; } if(target>array[i][j]){ j++; continue; } } return false; }}
0 0
- 剑指offer编程题01
- 剑指offer编程题
- 剑指Offer编程题集
- 《剑指offer》在线编程题
- 剑指offer中典型编程题小记
- 面试-机试-编程题--剑指offer
- 剑指Offer--编程题参考代码(1)
- 剑指offer--编程题参考代码(2)
- 剑指offer--编程题参考代码(3)
- 剑指offer--编程题参考代码(4)
- 面试-机试-编程题--剑指offer
- 剑指offer经典编程题(一)
- 剑指offer编程题(1):数组
- 剑指offer编程
- 剑指offer在线编程
- 剑指offer编程
- 《剑指offer》JAVA编程实现
- 第1题 变态跳台阶【剑指Offer编程题】
- 怎样使用pickerview来实现地址菜单的三级联动效果
- 请问ASP中如何判断记录集为空
- setuid,seteuid,setreuid
- Caffe 训练 cifar10 详细过程
- Android版本更新提示框
- 剑指offer编程题01
- 15.处理图像(案例:验证码+缩略图+加载系统字体+加载已有的图片)
- 数据结构实验之查找七:线性之哈希表
- MS SQL性能测试
- lesson3~数码管的静态显示&定时器&中断的应用
- 独立看门狗和窗口看门狗的区别
- Android实现MP4边下边播原理
- 第26篇 webrtc-IOS之使用Xcode
- 虚拟机网络问题