题目:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路:
由于二维数组中列从左到右递增,行从上到下递增,因此我们可以将传入的值首先与左下角的值来进行比较
代码:
public class Solution {
public boolean Find(int target, int [][] array) {
//定义行数
int rows = array.length;
//定义列数
int lies = array[0].length;
//定义i用来计数
int i = 0;
//while里的条件实施极限情况,不满足条件的时候则停止
while((rows>0)&&(i<lies)){
//目标大于左下角,让列数自增
if(target>array[rows-1][i]){
i++;
//目标小于左下角,让行数自减
}else if(target<array[rows-1][i]){
rows--;
}else{
//已经找到的情况
return true;
}
}
//遍历完还没有找到,说明不存在
return false;
}
}