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 @   Frommoon  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2024-03-03 147. 对链表进行插入排序(中)
点击右上角即可分享
微信分享提示