-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSearcha2DMatrix.java
More file actions
55 lines (53 loc) · 1.36 KB
/
Searcha2DMatrix.java
File metadata and controls
55 lines (53 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package leetcode;
/**
* @author eko
* @date 2018/10/24 9:28 AM
*
* 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.
* Example 1:
*
* Input:
* matrix = [
* [1, 3, 5, 7],
* [10, 11, 16, 20],
* [23, 30, 34, 50]
* ]
* target = 3
* Output: true
* Example 2:
*
* Input:
* matrix = [
* [1, 3, 5, 7],
* [10, 11, 16, 20],
* [23, 30, 34, 50]
* ]
* target = 13
* Output: false
*/
public class Searcha2DMatrix {
public static void main(String[] args) {
int[][] matrix = {
{1, 3, 5, 7},
{10, 11, 16, 20},
{23, 30, 34, 50}
};
int target = 3;
boolean res = new Searcha2DMatrix().searchMatrix(matrix, target);
System.out.println(res);
}
public boolean searchMatrix(int[][] matrix, int target) {
if (matrix.length < 1 || matrix[0].length < 1) return false;
int row = 0;
int col = matrix[0].length - 1;
while (col >= 0 && row < matrix.length) {
if (matrix[row][col] == target) return true;
else if (target < matrix[row][col]) col--;
else row++;
}
return false;
}
}