
javascript
var searchMatrix = function (matrix, target) {
if (!matrix || !matrix.length) return false
while(matrix.length > 0 && matrix[0].length > 0) {
let n = matrix[0].length - 1;
if (target === matrix[0][n]) return true
if (target > matrix[0][n]) {
matrix.shift()
} else {
matrix[0].pop();
}
}
return false
};
解题思路
如果当前行的最后一个都比target小,说明肯定不在这一行,如果找遍整行都没找到,说明不存在这个数
详细解法
1.判断第一行的最后一个数是否大于目标值,如果小于目标值,说明肯定不在这一行,直接舍弃这一行
2.如果大于目标值,说明就在这一行之中,只要一直判断最后一个数是不是即可,不是直接舍弃
3.如果整行都没有,即全部舍弃了,说明没有这个数