力扣热门100题之搜索二维矩阵II
这道题可以暴力遍历但较优解法是从右上角或左下角开始 “导航式” 查找时间复杂度O(m n)超级快核心思路必背选择右上角作为起点当前值 target→ 找到返回 true当前值 target→向左走这列下面都更大没用当前值 target→向下走这行左边都更小没用超级通俗解释一看就懂规则大了就左移右边全是更大的数直接放弃整列小了就下移上边全是更小的数直接放弃整行每次排除一行或一列效率极高完整代码实现class Solution { public boolean searchMatrix(int[][] matrix, int target) { // 判空 if (matrix null || matrix.length 0 || matrix[0].length 0) { return false; } int m matrix.length; // 行数 int n matrix[0].length; // 列数 // 起点右上角 (行0最后一列) int row 0; int col n - 1; //在边界内进行搜索查找 while(row m col 0){ if (matrix[row][col] target) { // 找到了 return true; } else if (matrix[row][col] target) { // 当前数太大 → 往左走 col--; } else { // 当前数太小 → 往下走 row; } } return false; } }