【每日一题】LeetCode 74. 搜索二维矩阵 TypeScript

📅 2026/7/1 4:01:06
【每日一题】LeetCode 74. 搜索二维矩阵 TypeScript
给你一个满足下述两条属性的m x n整数矩阵每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数target如果target在矩阵中返回true否则返回false。示例 1输入matrix [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target 3输出true示例 2输入matrix [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target 13输出false提示m matrix.lengthn matrix[i].length1 m, n 100-104 matrix[i][j], target 104核心思路(二分查找法)1.把二维数组“展开”成一维数组左边界下标0右边界下标是所有元素-1n x m矩阵数组 有 n x m个元素2.计算中间值找出矩阵的中间位置(leftright)/23.根据位置找出所在行和列行中间值 / 列数 Math.floor向下取整列中间值 % 列数4.比较中间值和目标值大了右边界缩小至mid-1小了左边界扩长至mid1function searchMatrix(matrix: number[][], target: number): boolean { const n matrix.length const m matrix[0].length let left 0 let right n * m - 1 while(left right){ const mid Math.floor((left right) / 2) let i Math.floor(mid / m) let j mid % m const midValue matrix[i][j] if(midValue target){ return true }else if(midValue target){ right mid - 1 }else{ left mid 1 } } return false };共勉