04 二维数组中的查找(javascript)
方法一:暴力遍历
/*全部遍历一遍*/
function Find(target, array)
{
for(let i = 0;i<array.length;i++){
for(let j=0;j<array[0].length;j++){
if(array[i][j] == target){
return true
}
}
}
}
方法二:以左下角为起点
/* 以左下角为起点,target大于左下角的值,去掉第一列,即j+1,*/
function Find(target, array) {
var cols = array[0].length;
var rows = array.length;
for (var i = cols, j = 0; i >= 0 && j < rows;) {
if (target > array[rows - 1][j]) {
cols--;
j++;
continue
} else if (target < array[rows - 1][j]) {
rows--;
i--;
continue
} else if (target == array[rows - 1][j]) {
return true
}
}
return false
}
方法三:(三种之中的最优解)
function Find(target, array)
{
var cols=array[0].length;
var rows=array.length;
for(var i=rows-1,j=0;i>=0 && j<cols;){
if(target > array[i][j]){
j++;
continue
}else if(target < array[i][j]){
i--;
continue
}else if(target == array[i][j]){
return true
}
}
return false
}