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

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

  • 相关阅读:
    mysql
    jQuery选择器
    使用JavaScript操作DOM节点元素的常用方法(创建/删除/替换/复制等)
    MVC2.0==>MVC3.0
    sql 邮件发送测试情况
    C#调用存储过程
    设计模式
    sql 分页
    SQL Server 存储过程(转载)
    sqlitehelper封装
  • 原文地址:https://www.cnblogs.com/learnordie/p/4656938.html
Copyright © 2011-2022 走看看