题解 | #二维数组中的查找#
二维数组中的查找
http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
矩阵遵循自左向右递增,自上到下递增,那么左下角为中间值,若目标值大于他,则排除其所在列(向右移动一位),若目标值小于他,则排除其所在行(向上移动一位),若已到达边界且还需要排除行或列,这说明元素不存在
public class Solution { public boolean Find(int target, int [][] array) { //优先判断特殊 if(array.length == 0) return false; int n = array.length; if(array[0].length == 0) return false; int high = array.length; int low = array[0].length; int col = 0; int row = high - 1; while (row >= 0 && col <= low - 1) { int temp = array[row][col]; if (temp == target) { return true; } if (temp > target) { row--; }else { col++; } } return false; } }