描述
在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
[
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]
给定 target = 7,返回 true。
给定 target = 3,返回 false。
基本思路
1、暴力解法
直接两个for循环嵌套
2、x、y轴解法
把上右上角当作起点
代码
function Find(target, array)
{
// write code here
for(let i = 0; i<array.length;i++){
for(let j = 0; j<array[i].length; j++){
if(array[i][j] == target) return true
}
}
return false
}
module.exports = {
Find : Find
};
function Find(target, array)
{
//判断数组是否为空
let m = array.length
if(m == 0) return false;
let n = array[0].length
if(n == 0) return false;
//这是右上角
let x = 0
let y = n-1
//这个限制条件就是左下角
while(x<m&&y>=0){
if(array[x][y] > target){
y--
}else if(array[x][y] <target){
x++
}else {return true}
}
return false
}
module.exports = {
Find : Find
};