两种解法

二维数组中的查找

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

public class Find_1 {
    //solution 1 
    public boolean Find(int target, int [][] array) {
        for(int i=0;i<array.length();i++)
            for(int j=0;j<array[i].length;j++){
                if(array[i][j]==target)
                    return true;
            }
        return false;

    }
    //soulution2 use binary search
    public boolean Find1(int target, int [][] array) {
        for(int i=0;i<array.length;i++){
            if(binary_search(target,array[i]))
                return true;
        }
        return false;


    }
    public static boolean binary_search(int target,int []array){
        int low=0;
        int high=array.length-1;
        int mim=0;
        while(low<=high){
            mim=(low+high)/2;
            if(target==array[mim])
                return true;
            else if(target>array[mim])
                low=mim+1;
            else
                high=mim-1;
        }

    }

}
全部评论

相关推荐

11-14 16:15
已编辑
湖南工业大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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