zoukankan      html  css  js  c++  java
  • Search a 2D Matrix 分类: Leetcode(查找) 2015-04-11 10:19 24人阅读 评论(0) 收藏

    Search a 2D Matrix


    Write an efficient algorithm that searches for a value in anm x n matrix. This matrix has the following properties:

    • Integers in each row are sorted from left to right.
    • The first integer of each row is greater than the last integer of the previous row.

    For example,

    Consider the following matrix:

    [
      [1,   3,  5,  7],
      [10, 11, 16, 20],
      [23, 30, 34, 50]
    ]
    

    Given target = 3, return true.

     
    class Solution {
    public:
        bool searchMatrix(vector<vector<int> > &matrix, int target) {
            
            if (matrix.empty()) return false;
            int m = matrix.size();
            int n = matrix[0].size();
            
            int first = 0;
            int last = m*n;
            
            while (first < last) {
                int mid = first + (last - first) /2;
                int value = matrix[mid /n][mid %n];
                
                if(value == target)
                    return true;
                else if (value < target)
                    first = mid +1;
                else 
                    last = mid;
            }
            return false;
        }
    };
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    nginx
    mysql
    intelij maven
    redis命令大全
    绑定touch事件后click无效,vue项目解决棒法
    新的用法
    img
    vuedragable
    自己总结
    vuex的项目在id中不能运行
  • 原文地址:https://www.cnblogs.com/learnordie/p/4656938.html
Copyright © 2011-2022 走看看