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

二维数组中的查找

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

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        //判断是否有元素存在
        if (array.size() == 0 || array[0].size() == 0) {
            return false;
        }
        //确定二元数组的宽和高:width和height
        int height = array.size();
        int width = array[0].size();
        //逐层搜索,直至找到target
        for (int i = 0; i < height; i++) {
            int left = 0, right = width - 1, mid = (left + height) / 2;
            //二分查找
            while (left <= right) {
                if (target == array[i][mid]) {
                    return true;
                }
                else {
                    if (target > array[i][mid]) {
                        left = mid + 1;
                        mid = (left + right) / 2;
                    }
                    else {
                        right = mid - 1;
                        mid = (left + right) / 2;
                    }
                }
            }
        }
        return  false;
    }
};

全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务