题目
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
知识点
数组
思路
方一、由于数组有序,可以用二分查找暴力找到target
方二、由于题目所规定的二维数组特性,可以从左下角或右上角开始,不论大于或小于target,每次只有一条移动路径。
源代码
public class Solution {
public boolean Find(int target, int [][] array) {
int rows = array.length;
int cols = array[0].length;
int i = 0;
int j = cols-1;
boolean b = false;
while(i<rows&&j>=0){
if(target==array[i][j]){
b = true;
break;
}
else if(target<array[i][j]){
j--;
}else if(target>array[i][j]){
i++;
}
}
return b;
}
}