Fork me on GitHub

剑指offer(1):二维数组中的查找


题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

function Find(target, array)
{
var row = array.length; //行数
var col = array[0].length; //列数
var r = row-1; //从左下角开始比较
var c = 0;
while( r >= 0 && c <= col-1){
if(target > array[r][c]){
c++;
}else if(target < array[r][c]){
r–;
}else{
return true;
}
}
return false;
}
思路:因为矩阵的特殊性,所以先从最后一行第一列开始比较,小于则向上查找,大于则向后查找。