题解 | 二维数组中的查找

二维数组中的查找

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

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param target int整型 
     * @param array int整型vector<vector<>> 
     * @return bool布尔型
     */
    bool Find(int target, vector<vector<int> >& array) {
        int n;
        int l=array.size();
        int h=array[0].size()-1;
        if(array[0].size()==0)
        return false;
        if(target<array[0][0] or target>array[l-1][h])
        return false;
        int k=0;
        for(int i=0;i<l;i++){
            if(array[i][0]>target){
            k=i-1;
            break;
            }
            else {
            k=i;
            }
        }
        
        for(int j=0;j<=k;j++){
            if(array[j][h]<target)
            continue;
            int left=0;
            int right=h;
            int mid;
            while (left<=right) {
            mid=(left+right)/2;
            if(array[j][mid]==target)
            return true;
            if(array[j][mid]<target){
                left=mid+1;
            }
            if(array[j][mid]>target){
                right=mid-1;
            }
            }
            continue;
        }
        return false;

    }
};

全部评论

相关推荐

03-03 19:02
已编辑
东华理工大学 Node.js
点赞 评论 收藏
分享
昨天 16:28
已编辑
湖南工商大学 Java
为了实习付出一切:那你就和她说明天你也要面试,没空
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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