import org.junit.Test;import java.util.Arrays;public class SearchMatrix {/*** @param matrix: matrix, a list of lists of integers* @param target: An integer* @return: a boolean, indicate whether matrix contains target* <p>* 28. 搜索二维矩阵* 写出一个高效的算法来搜索 m × n矩阵中的值。* <p>* 这个矩阵具有以下特性:* <p>* 每行中的整数从左到右是排序的。* 每行的第一个数大于上一行的最后一个整数。* 样例* 考虑下列矩阵:* <p>* [* [1, 3, 5, 7],* [10, 11, 16, 20],* [23, 30, 34, 50]* ]* 给出 target = 3,返回 true* <p>* 挑战* O(log(n) + log(m)) 时间复杂度*/public boolean searchMatrix(int[][] matrix, int target) {// write your code hereint i = 0;for (; i < matrix.length; i++) {if (matrix[i][0] == target) {return true;} else if (matrix[i][0] > target) {break;}}if (i == 0) {return false;}int result = Arrays.binarySearch(matrix[i - 1], target);if (result >= 0) {return true;} else {return false;}}@Testpublic void testSearchMatrix() {int[][] testArray = {{1, 3, 5, 7}, {10, 11, 16, 20}, {23, 30, 34, 50}};System.out.println(searchMatrix(testArray, 7));}
}

转载于:https://www.cnblogs.com/wei1/p/9582034.html

LintCode 28. 搜索二维矩阵相关推荐

  1. python 搜索二维矩阵

    搜索二维矩阵 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入:m ...

  2. LeetCode Algorithm 240. 搜索二维矩阵 II

    240. 搜索二维矩阵 II Ideas 这题我记得在左神算法初级班里面有. 主要的思想就是定义两个指针row_index和col_index,从右上角开始逐个搜索. 如果matrix[row_ind ...

  3. LeetCode 240. 搜索二维矩阵 II(二分查找 分治)

    文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...

  4. 【LeetCode】【HOT】240. 搜索二维矩阵 II(抽象二叉搜索树)

    [LeetCode][HOT]240. 搜索二维矩阵 II 文章目录 [LeetCode][HOT]240. 搜索二维矩阵 II package hot;public class Solution24 ...

  5. 利用可达矩阵判断连通性_leetcode240. 搜索二维矩阵 II

    leetcode240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上 ...

  6. Java 搜索二维矩阵 II

    搜索二维矩阵 II 中等 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target .该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示 ...

  7. LeetCode 07: T48. 旋转图像 (中等); T54. 螺旋矩阵(中等); T240. 搜索二维矩阵 II (中等)

    文章目录 T19: 48. 旋转图像 (中等) 思路 解法 1: 新增数组 解法 2: 原地旋转 T20: 54. 螺旋矩阵(中等) 思路 解法: 到边界换方向 T21: 240. 搜索二维矩阵 II ...

  8. Python每日一练(20230307) 重复DNA序列、搜索二维矩阵、买卖股票的最佳时机IV

    目录 1. 重复的DNA序列  ★★ 2. 搜索二维矩阵  ★★ 3. 买卖股票的最佳时机 IV  ★★★

  9. 搜索二维矩阵II(分治法和蛇行)

    问题来源:力扣算法面试汇总 问题描述:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序 ...

最新文章

  1. django模型sqlserver_让Django模型在MSSQL上工作的麻烦?
  2. python输入一个整数倒序输出_利用Python实现倒序任意整数
  3. python中的浮点数用法_如何利用Python在运算后得到浮点数值的方法详解
  4. 多返回值函数的编写方法
  5. Python正则表达式-2
  6. php日期的怎么判断同一天,php如何判断两个时间戳是一天
  7. Java日期及时间库插件 -- Joda Time.
  8. 算法学习入门书籍 -- 2022.02.13
  9. matlab编程求平均,matlab中的分组平均函数grpstats的用法
  10. 验证控件jQuery Validation Engine调用外部函数验证
  11. HDU5961 —— 传递【竞赛图】【判断传递闭包】
  12. SpringBoot2.0整合jsp
  13. hook技术截取服务器信息,Windows Hook技术
  14. 教你学习JavaScript的this入门到进阶最全用法
  15. max pooling 和 average pooling
  16. 从Python爬虫到Spark预处理数据的真实需求[三]
  17. 为什么点开桌面计算机那这么慢,电脑桌面刷新反应很慢怎么办?电脑桌面刷新很慢解决方法...
  18. [软件工程] 面向对象设计
  19. 计算机复试题总结(九)
  20. 罗克韦尔自动化帮助简化工业生产力分析

热门文章

  1. java 守护进程 linux_Java实现Linux下服务器程序的双守护进程
  2. parallels desktop 启动过失败_使用u启动软件制作启动盘时注意哪些【详细介绍】...
  3. 晶体封装越小esr越大_晶振
  4. c++ 随机字符串_第3章 别碰白块(《C和C++游戏趣味编程》配套教学视频)
  5. mysql8 设置了默认值 CURRENT_TIMESTAMP 依然报null问题
  6. python怎么输出数组全部数据_打印numpy数组的全部内容
  7. java interface 默认_Java8 接口interface默认方法
  8. linux查看和编辑文件,查看和编辑文件(Linux的快捷键和主要命令)
  9. 将xml转为txt_HZ文章转短视频工具v1.0 快速将文章转为短视频 自动配音 配字幕 配图...
  10. data的值 如何初始化vue_理解Vue响应式系统