一、题目描述

二、解题思路
- 对矩阵每一行使用一次indexOf,若不为-1,则直接返回true,若遍历到最后一行都没有找到,则返回false。
- 方法1没用利用到矩阵有序排列的特性,由于每一行从左到右和每一列从上到下是递增的,因此可以从右上角的数开始判断,有三种情况:1)目标数字与当前数字相等,直接返回。 2)目标数字大于当前数字,则往下一行查找。3)目标数字小与当前数字,则往前一列查找。
三、代码实现
var findNumberIn2DArray = function(matrix, target) {
const len = matrix.length
for(let i=0;i<len;i++){
if(matrix[i].indexOf(target)!=-1) return true
}
return false
};
var findNumberIn2DArray = function(matrix, target) {
const len = matrix.length
if(!len) return false
const colNum = matrix[0].length
if(!colNum) return false
let row = 0
let col = colNum - 1
while(row<len&&col>=0){
if(matrix[row][col]==target) return true
else if(matrix[row][col]<target){
row++
continue
}
else if(matrix[row][col]>target){
col--
continue
}
}
return false
};