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

二维数组中的查找

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;
    }
};

全部评论

相关推荐

风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
昨天 13:16
湖南工学院 Java
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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