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

二维数组中的查找

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

public class Solution {

public boolean Find(int target, int [][] array) {
    if(array==null || array.length==0 || array[0].length==0)
        return false;
    int len = array.length, size = array[0].length;
    //灵活搜索
    int row=0, col=size-1;
    while(row<len && col>=0){
        if(array[row][col]==target)
            return true;
        else if(array[row][col]<target)
            row++;
        else{
            /*
            这里写的复杂了,看官方题解后才发现只写col--就可以了
            for(int j=col-1;j>=0;--j){
                if(array[row][j]>target)
                    continue;
                else if(array[row][j]==target)
                    return true;
                else{
                    break;
                }
            }
            row++;
            */
            col--;
        }
    }
    
    /*
    暴力搜索 时间复杂度O(n*2)
    for(int i=0;i<len;++i){
        for(int j=0;j<size;++j){
            if(array[i][j] == target)
                return true;
        }
    }
    */
    return false; 
}

}

阿勇算法解集 文章被收录于专栏

对一些基础的,经典的题目的算法题解,每道题的题解尽量做到一题多解,举一反三。其中每一个题解中,若是参考了其他牛人的想法,我会备注出来。

全部评论

相关推荐

06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 15:36
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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