74. 搜索二维矩阵

题目来源:

LeetCode题目:74. 搜索二维矩阵 - 力扣(LeetCode)

解题思路:

两次二分。第一次二分寻找第一列中小于等于target的最大值,第二次 在该行中找到小于等于target的最大值,最后判断是否存在该值及该值是否是 target。

解题代码:

复制代码
#python3
class Solution:
    def getIndex(matrix:List[int],target:int)->int:
        left=0
        right=len(matrix)-1
        while(left<right):
            mid=(left+right)//2+1
            if matrix[mid]==target:
                return mid
            elif matrix[mid]<target:
                left=mid
            else:
                right=mid-1
        return left


    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        n0=[]
        for i in range(len(matrix)):
            n0.append(matrix[i][0])
        row=Solution.getIndex(n0,target)
        if row<0 or  row>=len(matrix):
            return False
        column=Solution.getIndex(matrix[row],target)
        if column<0 or column>=len(matrix[0]):
            return False
        return matrix[row][column]==target
复制代码

总结:

官方题解给出了两种解法。第一个是两次二分。第二个是一次二分,讲二维数组拼接为一维数组后再进行二分查找。


相关推荐
Navigator_Z4 分钟前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode
Navigator_Z43 分钟前
LeetCode //C++ - 1226. The Dining Philosophers
c语言·算法·leetcode
CoderYanger4 小时前
A.每日一题:1140. 石子游戏 II
java·程序人生·算法·leetcode·游戏·职场和发展·深度优先
sheeta19987 小时前
LeetCode 每日一题笔记 日期:2026.09.02 题目:3875.构造奇偶一致的数组 I
笔记·算法·leetcode
退休倒计时8 小时前
【每日五题】leetcode TypeScript
算法·leetcode·职场和发展·typescript
心抵鹊9 小时前
力扣每日一题:计算右侧小于当前元素的个数(hard)
算法·leetcode
鹿角片ljp9 小时前
LeetCode 142:环形链表 II |HashSet 保底解 + Floyd 快慢指针找环入口
算法·leetcode·链表
a187927218319 小时前
【算法】回溯算法(一):从一道 IP 题到万能模板
算法·leetcode·go·回溯·leetcode93·ip复原·算法讲解
鹿角片ljp9 小时前
LeetCode 19:删除链表的倒数第 N 个节点复盘| dummy + 快慢指针
算法·leetcode·链表
玖玥拾9 小时前
LeetCode 290 单词规律
算法·leetcode·哈希算法·散列表