74.搜索二维矩阵

Problem

leetcode链接problem
感觉很乱,因为很多太多特例了。

Code

using namespace std;
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        if(matrix.empty() || matrix[0].empty())
        {
            return false;
        }
        int m = matrix.size();
        int n = matrix[0].size();
        cout << m << "," << n << endl;
        if(n == 0 && m == 0)
        {
            return false;
        }
        if(n == 1 && m == 1)
        {
            if(matrix[0][0] == target)
                return true;
            else
                return false;
        }
        int key = -1;
        if(target < matrix[0][0] || target > matrix[m-1][n-1])
        {
            cout << "min,max" << endl;
            return false;
        }    
        for(int i = 0;i < m;i++)
        {
            if(matrix[i][0] <= target && matrix[i][n-1] >= target)
            {
                key = i;
            }
        }
        cout << "key=" << key <<endl;
        if(key == -1)
        {
            return false;
        }
        int mid = 0;
        int left = 0;
        int right = n - 1;

        if(n == 1)
        {
            if(matrix[key][0] == target)
                return true;
            else return false;
        }
        while(left < right)
        {
            mid = (left + right) / 2;
            if(matrix[key][mid] == target || matrix[key][left] == target || matrix[key][right] ==target)
                return true;
            else if(matrix[key][mid] < target){
                //mid = left + 1;
                left = mid + 1;
            }
            else{
                //mid = right - 1;
                right = mid - 1;
            }
            cout << "matrix[key][mid]" << matrix[key][mid] << endl;
        }
        return false;
    }  
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目链接难度:中等 类型: 数组、二分查找 编写一个高效的算法来判断 m x n 矩阵中,是否存...
    wzNote阅读 693评论 0 4
  • 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左...
    河海中最菜阅读 138评论 0 0
  • 题目编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按...
    HITZGD阅读 169评论 0 0
  • 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左...
    youzhihua阅读 49评论 0 0
  • 趁着清明节回老家,带两个孩子去曾经就读的学校转转,感叹时光的飞逝。 门卫处的值班大哥对于我这样的陌...
    chen亚琴阅读 295评论 1 0