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 := matrixmid/nmid%n

代码如下(左闭右开法):

go 复制代码
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
}
相关推荐
luoganttcc21 小时前
指数分布的完整推导
线性代数·机器学习·概率论
什巳1 天前
JAVA练习309- 二叉树的层序遍历
java·数据结构·算法·leetcode
什巳1 天前
JAVA练习306- 翻转二叉树
java·数据结构·算法·leetcode
smj2302_796826521 天前
解决leetcode第3989题网格中保持一致的最大列数
python·算法·leetcode
巧克力男孩dd1 天前
Python超典型练习题(第一次作业)
开发语言·python·算法
爱刷碗的苏泓舒1 天前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用
线性代数·算法·矩阵·gnss·参数估计·测量平差·平方根信息滤波
想做小南娘,发现自己是女生喵1 天前
第 2 章 顺序表和 vector
java·数据结构·算法
艾醒1 天前
2026年第29周(7.13-7.19)AI全复盘:技术突破、行业趣闻翻车、算力服务器商业动态
人工智能·算法
雪碧聊技术1 天前
动态规划算法—01背包问题
算法·动态规划
bu_shuo1 天前
c与cpp中的argc和argv
c语言·c++·算法