leetcode74搜索二维矩阵

题目

给你一个满足下述两条属性的 m x n 整数矩阵:

  • 每行中的整数从左到右按非严格递增顺序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

示例

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true
在这里插入图片描述

解析

这道题其实还是使用二分法,就相当于将所有的二维数组串起来(但并不是真的要有串起来实现的代码),比如上面的例子,target=3,有3行4列,m=3, n=4,则有:
x := matrix[mid/n][mid%n]
代码如下(左闭右开法):

func searchMatrix(matrix [][]int, target int) bool {
   m := len(matrix)
   n := len(matrix[0])
   left := 0
   right := m * n
   for left < right {
   	mid := left + (right-left)/2
   	x := matrix[mid/n][mid%n]
   	if x == target {
   		return true
   	} else if x < target {
   		left = mid + 1
   	} else {
   		right = mid
   	}
   }
   return false
}

相关推荐

  1. leetcode 74.搜索矩阵

    2024-06-07 23:42:04       51 阅读
  2. LeetCode题目74:搜索矩阵

    2024-06-07 23:42:04       37 阅读
  3. LeetCode 74搜索矩阵

    2024-06-07 23:42:04       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 23:42:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 23:42:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 23:42:04       87 阅读
  4. Python语言-面向对象

    2024-06-07 23:42:04       96 阅读

热门阅读

  1. Django 里解决自定义中间件的问题

    2024-06-07 23:42:04       28 阅读
  2. less中文乱码问题

    2024-06-07 23:42:04       27 阅读
  3. 监控易监测对象及指标之:全面监控LDAP服务器

    2024-06-07 23:42:04       31 阅读
  4. 面试题:CSS 怎样实现动画?

    2024-06-07 23:42:04       29 阅读
  5. webpack学习

    2024-06-07 23:42:04       25 阅读