题目
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照
从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
code
// [1, 2, 3, 4]
// [6, 7, 8, 9]
// 思路:1、从左下角第一个数开始,
// 2、如果目标数字比这个数字大,则说明目标数字在这个数字的右边
// 3、如果目标数字比这个数字小,则说明目标数字在上一层数组里
// 4、重复上述步骤
function find(arr, target) {
if (!arr || arr.length === 0) {
return false
}
if (!arr[0].length) {
return false
}
var cols = arr[0].length - 1
var maxRow = arr.length - 1
var minCol = 0
while (maxRow >= 0 && minCol <= cols) {
var curNum = arr[maxRow][minCol]
if (curNum === target) {
return true
} else if (curNum > target) {
maxRow--
} else {
minCol++
}
}
return false
}
网友评论