74.Search a 2D Matrix

public boolean searchMatrix(int[][] matrix, int target) {
        if (matrix == null || matrix[0][0] > target)
            return false;
        int rowLen = matrix.length;
        int colLen = matrix[0].length;
        int low = 0, high = rowLen * colLen - 1;

        while (low <= high) {
            int mid = (low + high) >>> 1;
            int x = mid / colLen;
            int y = mid % colLen;
            if (matrix[x][y] > target) {
                high = mid - 1;
            } else if (matrix[x][y] < target) {
                low = mid + 1;
            } else {
                return true;
            }
        }
        return false;
    }
posted @   JohnRed  阅读(72)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
阅读排行:
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程
点击右上角即可分享
微信分享提示