zoukankan      html  css  js  c++  java
  • 74. Search a 2D Matrix

    class Solution {
    public:
        bool searchMatrix(vector<vector<int>>& matrix, int target) {
            int m = matrix.size();
            if (!m)
            {
                return false;
            }
            int n = matrix.at(0).size();
            if (!n)
            {
                return false;
            }
            int row = -1;
            for (int i = 0; i < m; i++)
            {
                if (matrix[i][0] <= target && matrix[i][n - 1] >= target) {
                    row = i;
                    break;
                }
            }
    
            if (row < 0)
            {
                return false;
            }
    
            //二分查找
            int low = 0, high = n - 1;
            vector<int> tVec = matrix.at(row);
            while (low <= high)
            {
                int mid = (low + high) / 2;
                if (tVec.at(mid) > target)
                {
                    high = mid - 1;
                }
                else if (tVec.at(mid) < target){
                    low = mid + 1;
                }
                else {
                    return true;
                }
            }
    
            return false;
        }
    };
  • 相关阅读:
    ORM框架
    优酷项目1
    新年第一天
    前端第十天
    前端第九天
    前端第八天
    前端第七天
    前端第六天
    前端第五天
    月亮与六便士
  • 原文地址:https://www.cnblogs.com/AndrewGhost/p/7211059.html
Copyright © 2011-2022 走看看