二位数组快速查找某个值

二维数组中的查找

http://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e

public class Solution {
    public boolean Find(int target, int [][] array) {
        int row = array.length;
        if(row == 0) {
            return false;
        }
        int col = array[0].length;
        if(col == 0) {
            return false;
        }       
        // 最右上角的位置
        int r = 0, c = col - 1;
        // 从右上开始向右下对比
        while(r < row && c >= 0) {
            if(target == array[r][c]) {
                return true;
            } else if(target > array[r][c]) {
                // 说明目标值在[r][c]的下边
                ++r;
            } else {
                // 说明目标值在[r][c]的左边
                --c;
            }
        }        
        return false;
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务