博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode — search-a-2d-matrix
阅读量:6798 次
发布时间:2019-06-26

本文共 1934 字,大约阅读时间需要 6 分钟。

/** * Source : https://oj.leetcode.com/problems/search-a-2d-matrix/ * * * Write an efficient algorithm that searches for a value in an m 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. * */public class SearchMatrix {    /**     * 因为矩阵是连续有序的,所以可以当做一维数组处理,使用二分法搜索     * 也可以使用二分法先搜索第一列,确定处于哪一行,再对该行使用二分法搜索     *     *     *     * @return     */    public boolean search (int[][] matrix, int target) {        if (matrix.length == 0 || matrix[0].length == 0) {            return false;        }        int m = matrix.length;        int n = matrix[0].length;        int left = 0;        int right = m * n;        int mid = (left + right) / 2;        int midi = mid / n;        int midj = mid % n;        while (left <= right) {            if (matrix[midi][midj] == target) {                return true;            }            if (matrix[midi][midj] > target) {                right = mid - 1;            } else {                left = mid + 1;            }            mid = (left + right) / 2;            midi = mid / n;            midj = mid % m;        }        return false;    }    public static void main(String[] args) {        SearchMatrix searchMatrix = new SearchMatrix();        int[][] matrix = new int[][]{                {1,   3,  5,  7},                {10, 11, 16, 20},                {23, 30, 34, 50}        };        System.out.println(searchMatrix.search(matrix, 3));        System.out.println(searchMatrix.search(matrix, 11));        System.out.println(searchMatrix.search(matrix, 34));        System.out.println(searchMatrix.search(matrix, 0));    }}

转载于:https://www.cnblogs.com/sunshine-2015/p/7727002.html

你可能感兴趣的文章
【大数据】阿里巴巴的大规模数据流处理系统
查看>>
Centos-Kafka 消息队列
查看>>
蚂蚁金服微服务实践 | 开源中国年终盛典分享实录 ...
查看>>
你应该知道的 HBase 基础,都在这儿了
查看>>
理解RESTful架构
查看>>
详解docker中容器devicemapper设备的挂载流程
查看>>
head first python 6 class 扩展
查看>>
大数据,多大算“大
查看>>
「镁客·请讲」前知智能唐宝:中国金属3D打印最大的挑战是软硬件的自研与国产化 ...
查看>>
EMNLP2018 - 语言理解+对话系统的最新进展
查看>>
如何解决移动电商平台中的“伪曝光”?
查看>>
迁云工具版本更新(1.3.2.5)
查看>>
使用golang编写prometheus metrics exporter
查看>>
基于python开发的股市行情看板
查看>>
linux进程管理总结
查看>>
Linux学习笔记(1)--基本命令
查看>>
Longhorn:实现Kubernetes集群的持久化存储
查看>>
阿里云 Aliplayer高级功能介绍(三):多字幕
查看>>
Data Lake Analytics: 以SQL方式查询Redis数据
查看>>
一条查询sql的执行流程和底层原理
查看>>