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

二维数组中的查找

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

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
	  // 将二维问题转化为一维问题
	  // for循环中,行数从小到大
	  // while循环中,对每一行使用二分查找
	  // 找到返回true;找不到在循环外返回false
        for(int row = 0; row < array.size(); ++row){
            int left = 0;
            int right = array[0].size() - 1;
            while(left <= right){
                int mid = left + (right - left) / 2;
                if(array[row][mid] == target) return true;
                else if(array[row][mid] < target) left = mid + 1;
                else right = mid - 1;
            }
        }
        return false;
    }
};

全部评论

相关推荐

10-31 20:07
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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