74. 搜索二维矩阵(中)

题目

  • 给你一个满足下述两条属性的 m x n 整数矩阵:
    每行中的整数从左到右按非严格递增顺序排列。
    每行的第一个整数大于前一行的最后一个整数。
    给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

题解:数组扁平化+二分查找

  • 闭区间写法
var searchMatrix = function(matrix, target) {
    let a = matrix.flat(2)//数组扁平化
    // let a = matrix.toString().split(",").map(Number)//数组扁平化
    let i=0,j=a.length-1
    while(i<=j){
        let mid = Math.floor((i+j)/2)
        if(target == a[mid]) return true
        else if(target < a[mid]){
            j = mid-1
        }else{
            i=mid+1
        }
    }
    return false
};
  • 左闭右开写法
var searchMatrix = function(matrix, target) {
    let a = matrix.flat(2)//数组扁平化
    // let a = matrix.toString().split(",").map(Number)//数组扁平化
    let i=0,j=a.length
    while(i<j){
        let mid = Math.floor((i+j)/2)
        if(target == a[mid]) return true
        else if(target < a[mid]){
            j = mid
        }else{
            i=mid+1
        }
    }
    return false
};
posted @ 2025-03-03 09:55  Frommoon  阅读(15)  评论(0)    收藏  举报