(java)剑指offer二维数组中的查找
2024-09-07 21:52:05
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从
上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
public class 二维数组中的查找 {
/*
* 最初反应是遍历一遍,但是数组从左到右和从上到下都是递增的,那么可以把二维数组的右上角
* 作为初始比较位置。比如从右上角开始,假设右上角的数为x,输入数值为y。如果y<x,那就直接往左找,如果 y>x,就向下一行。
*/
public static boolean Find(int target, int[][] array) {
/*二维数组可以理解成一个一维数组里的每个元素都是一个数组
* 定义一个整型数组:3行4列
* int a[][] = new int[3][4];
* 获取行数---3行 int lenY = a.length;
* 获取列数---4列 int lenX = a[0].length;
*
*/
int row=0;
int col=array[0].length-1;
int rowlength= array.length;
int collength=array[0].length;
//这个地方一开始没有考虑到,实际写算法的时候应该考虑到各种输入值。
if(rowlength==0 || collength==0){
return false;
}
while(row<rowlength && col>=0){
//while(row<array.length && col>=0){
if(target>array[row][col]){
row++;
}
else if(target<array[row][col]){
col--;
}
else
return true;
}
return false;
}
}
最新文章
- 解决对含有第三方jar包的项目打包出现java.lang.NoClassDefFoundError问题
- Cocos2d-x开发实例:使用Lambda 表达式
- 扩展Visual Studio IDE
- java中获取类加载路径和项目根路径的5种方法
- css如此强大你知道吗
- Qt 技巧:去除对话框边框 + 设置窗口可移动和透明
- Shards
- react开发
- Dubbo简介
- jupyter nootbook本地使用指南
- Python文本编辑器推荐
- vue 图片预览插件
- 报表工具-ECharts 特性介绍
- Binary Search 二分法方法总结
- Hibernate概念初探
- Memcached cas 陷阱
- SNMP支持IPv6
- 一个判断I2C总线通信异常原因的方法
- PYTHON-面向对象-练习-王者荣耀 对砍游戏
- 用shell 实现对MySQL数据库分页