题目描述

解题思路(数学规律)
- 本题主要是从二维数组的左下角的元素出发,不断的进行移动比较,因为本题给出的二维数组存在一个特点就是,从左小角的元素出发,一列的元素中,上面的元素总是比下面的元素小,一行的元素中,右边的元素总是比左边的大,这个特点就是我们解题的关键。
解题代码
var findNumberIn2DArray = function(matrix, target) {
if (matrix.length === 0) return false;
let origin = matrix[matrix.length - 1][0];
let top = matrix.length - 1;
let right = 0;
let res;
while (1) {
if (top < 0 || right === matrix[0].length) return false;
origin = matrix[top][right];
if (origin === target) return true;
if (origin < target) {
right++;
}
if (origin > target) {
top--;
}
}
};
var searchMatrix = function(matrix, target) {
if (matrix.length === 0) return false;
let top = matrix.length - 1;
let right = 0;
while (1) {
if (top < 0 || right === matrix[0].length) return false;
let origin = matrix[top][right];
if (origin === target) {
return true;
}
if (origin > target) {
top--;
}
if (origin < target) {
right++;
}
}
};
总结(本题给我们的启示思路)