74Search a 2D Matrix
来源:互联网 发布:钢结构预算软件 编辑:程序博客网 时间:2024/05/17 08:31
题目链接:https://leetcode.com/problems/search-a-2d-matrix/
题目:
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted from left to right.The first integer of each row is greater than the last integer of the previous row.For example,Consider the following matrix:[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]Given target = 3, return true.
解题思路:
题目给定的数组不论是行还是列都是有序的,有序数组的查找自然要想到二分查找。
先按行(对第一列)进行二分查找,找到某一行。
再按列(对上述行)进行第二次二分查找。
代码实现:
public class Solution { public boolean searchMatrix(int[][] matrix, int target) { if(matrix == null || matrix.length == 0) return false; int high = matrix.length - 1; int low = 0; int mid = 0; while(low <= high) { mid = (low + high) / 2; if(matrix[mid][0] == target) return true; else if(matrix[mid][0] > target) high = mid - 1; else low = mid + 1; } int row = mid; if(matrix[mid][0] > target) { if(mid > 0) row = mid - 1; else return false; } low = 1; high = matrix[0].length - 1; while(low <= high) { mid = (low + high) / 2; if(matrix[row][mid] == target) return true; else if(matrix[row][mid] > target) high = mid - 1; else low = mid + 1; } return false; }}
134 / 134 test cases passed.Status: AcceptedRuntime: 1 ms
0 0
- Leetcode 74 Search a 2D Matrix
- LeetCode 74: Search A 2D Matrix
- LeetCode 74 Search a 2D Matrix
- [leetcode 74] Search a 2D Matrix
- [LeetCode 74]Search a 2D Matrix
- leetcode || 74、Search a 2D Matrix
- leetcode-74 Search a 2D Matrix
- Leetcode[74]-Search a 2D Matrix
- 【Leetcode】Search a 2D Matrix #74
- LeetCode(74) Search a 2D Matrix
- Leetcode #74 Search a 2D Matrix
- Leetcode #74 Search a 2D Matrix
- leetcode 74: Search a 2D Matrix
- Leetcode#74||Search a 2D Matrix
- leetcode 74 : Search a 2D Matrix
- [74] Search a 2D Matrix
- [Leetcode]#74 Search a 2D Matrix
- 74Search a 2D Matrix
- Ant编译问题五:×××需要常量表达式
- Linux下fork()函数
- Java初学者必看2
- Mysql cookbook(1)
- Java基础(5):封装
- 74Search a 2D Matrix
- 如何把rubyon rails 项目部署到heroku上去:
- 群体智能利用:验证码识别
- 国际化
- 欢迎使用CSDN-markdown编辑器
- 数据结构之旅(一)一些基本的概念
- Android开源框架Universal-Image-Loader详解
- openfire源码分析---2
- iOS开发UI篇—ipad 项目 popoverController简单介绍