欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 【leetcode hot 100 240】搜索二维矩阵Ⅱ

【leetcode hot 100 240】搜索二维矩阵Ⅱ

2025/3/11 19:51:33 来源:https://blog.csdn.net/weixin_47894469/article/details/146081291  浏览:    关键词:【leetcode hot 100 240】搜索二维矩阵Ⅱ

解法一:直接查找

class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int i=0; i<matrix.length; i++){for(int j=0; j<matrix[0].length; j++){if(matrix[i][j]>target){break;}if(matrix[i][j]==target){return true;}}}return false;}
}

解法二:二分查找

class Solution {public boolean searchMatrix(int[][] matrix, int target) {for (int[] row : matrix) {int index = search(row, target);if (index >= 0) {return true;}}return false;}public int search(int[] nums, int target) {int low = 0, high = nums.length - 1;while (low <= high) {int mid = (high - low) / 2 + low;int num = nums[mid];if (num == target) {return mid;} else if (num > target) {high = mid - 1;} else {low = mid + 1;}}return -1;}
}

注意:

  • mid = (high - low) / 2 + low

解法三:(Z 字形查找)从右上角开始查找,若matrix[i][j]>target,则列减少;若matrix[i][j]<target,则列增加。

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int i=0, j=matrix[0].length-1;while(i<matrix.length && j>=0){if(matrix[i][j]==target){return true;}if(matrix[i][j]>target){j--;}else{i++;}}return false;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词