21
21
*/
22
22
class Search2DMatrix {
23
23
public static void main (String [] args ) {
24
+ Search2DMatrix s = new Search2DMatrix ();
24
25
int [][] matrix = { {1 , 3 , 5 , 7 }, {10 , 11 , 16 , 20 }, {23 , 30 , 34 , 50 }};
25
- System .out .println (searchMatrix (matrix , 0 ));
26
- System .out .println (searchMatrix (matrix , 1 ));
27
- System .out .println (searchMatrix (matrix , 2 ));
28
- System .out .println (searchMatrix (matrix , 11 ));
29
- System .out .println (searchMatrix (matrix , 15 ));
30
- System .out .println (searchMatrix (matrix , 34 ));
31
- System .out .println (searchMatrix (matrix , 35 ));
32
- System .out .println (searchMatrix (matrix , 50 ));
33
- System .out .println (searchMatrix (matrix , 51 ));
34
- System .out .println (searchMatrix (matrix , 100 ));
26
+ System .out .println (s . searchMatrix (matrix , 0 ));
27
+ System .out .println (s . searchMatrix (matrix , 1 ));
28
+ System .out .println (s . searchMatrix (matrix , 2 ));
29
+ System .out .println (s . searchMatrix (matrix , 11 ));
30
+ System .out .println (s . searchMatrix (matrix , 15 ));
31
+ System .out .println (s . searchMatrix (matrix , 34 ));
32
+ System .out .println (s . searchMatrix (matrix , 35 ));
33
+ System .out .println (s . searchMatrix (matrix , 50 ));
34
+ System .out .println (s . searchMatrix (matrix , 51 ));
35
+ System .out .println (s . searchMatrix (matrix , 100 ));
35
36
}
36
37
37
38
/**
38
39
* Binary search to locate row, then binary search in a row
39
40
* O(logm + logn)
40
41
*/
41
- public static boolean searchMatrix (int [][] matrix , int target ) {
42
+ public boolean searchMatrix (int [][] matrix , int target ) {
42
43
if (matrix == null || matrix .length == 0 || matrix [0 ].length == 0 ) return false ;
43
44
int left = 0 ;
44
45
int right = matrix .length - 1 ;
@@ -69,7 +70,7 @@ public static boolean searchMatrix(int[][] matrix, int target) {
69
70
*
70
71
* disadvantage: 1. m * n may overflow 2. / and % are expensive
71
72
*/
72
- public static boolean searchMatrixBest (int [][] matrix , int target ) {
73
+ public boolean searchMatrixBest (int [][] matrix , int target ) {
73
74
if (matrix == null || matrix .length == 0 || matrix [0 ].length == 0 ) return false ;
74
75
int m = matrix .length ;
75
76
int n = matrix [0 ].length ;
@@ -85,4 +86,4 @@ public static boolean searchMatrixBest(int[][] matrix, int target) {
85
86
return false ;
86
87
}
87
88
88
- }
89
+ }
0 commit comments