题解 | #二维数组中的查找#

二维数组中的查找

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;
    }
}


全部评论

相关推荐

Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务