File tree 6 files changed +198
-10
lines changed
solution/0200-0299/0240.Search a 2D Matrix II
6 files changed +198
-10
lines changed Original file line number Diff line number Diff line change 48
48
49
49
<!-- 这里可写通用的实现逻辑 -->
50
50
51
+ 从左下角(或右上角)开始查找即可。
52
+
51
53
<!-- tabs:start -->
52
54
53
55
### ** Python3**
54
56
55
57
<!-- 这里可写当前语言的特殊实现逻辑 -->
56
58
57
59
``` python
58
-
60
+ class Solution :
61
+ def searchMatrix (self , matrix : List[List[int ]], target : int ) -> bool :
62
+ m, n = len (matrix), len (matrix[0 ])
63
+ i, j = m - 1 , 0
64
+ while i >= 0 and j < n:
65
+ if matrix[i][j] == target:
66
+ return True
67
+ if matrix[i][j] > target:
68
+ i -= 1
69
+ else :
70
+ j += 1
71
+ return False
59
72
```
60
73
61
74
### ** Java**
62
75
63
76
<!-- 这里可写当前语言的特殊实现逻辑 -->
64
77
65
78
``` java
79
+ class Solution {
80
+ public boolean searchMatrix (int [][] matrix , int target ) {
81
+ int m = matrix. length, n = matrix[0 ]. length;
82
+ int i = m - 1 , j = 0 ;
83
+ while (i >= 0 && j < n) {
84
+ if (matrix[i][j] == target) {
85
+ return true ;
86
+ }
87
+ if (matrix[i][j] > target) {
88
+ -- i;
89
+ } else {
90
+ ++ j;
91
+ }
92
+ }
93
+ return false ;
94
+ }
95
+ }
96
+ ```
97
+
98
+ ### ** C++**
99
+
100
+ ``` cpp
101
+ class Solution {
102
+ public:
103
+ bool searchMatrix(vector<vector<int >>& matrix, int target) {
104
+ int m = matrix.size(), n = matrix[ 0] .size();
105
+ int i = m - 1, j = 0;
106
+ while (i >= 0 && j < n) {
107
+ if (matrix[ i] [ j ] == target) {
108
+ return true;
109
+ }
110
+ if (matrix[ i] [ j ] > target) {
111
+ --i;
112
+ } else {
113
+ ++j;
114
+ }
115
+ }
116
+ return false;
117
+ }
118
+ };
119
+ ```
66
120
121
+ ### **Go**
122
+
123
+ ```go
124
+ func searchMatrix(matrix [][]int, target int) bool {
125
+ m, n := len(matrix), len(matrix[0])
126
+ i, j := m-1, 0
127
+ for i >= 0 && j < n {
128
+ if matrix[i][j] == target {
129
+ return true
130
+ }
131
+ if matrix[i][j] > target {
132
+ i--
133
+ } else {
134
+ j++
135
+ }
136
+ }
137
+ return false
138
+ }
67
139
```
68
140
69
141
### ** ...**
Original file line number Diff line number Diff line change 47
47
### ** Python3**
48
48
49
49
``` python
50
-
50
+ class Solution :
51
+ def searchMatrix (self , matrix : List[List[int ]], target : int ) -> bool :
52
+ m, n = len (matrix), len (matrix[0 ])
53
+ i, j = m - 1 , 0
54
+ while i >= 0 and j < n:
55
+ if matrix[i][j] == target:
56
+ return True
57
+ if matrix[i][j] > target:
58
+ i -= 1
59
+ else :
60
+ j += 1
61
+ return False
51
62
```
52
63
53
64
### ** Java**
54
65
55
66
``` java
67
+ class Solution {
68
+ public boolean searchMatrix (int [][] matrix , int target ) {
69
+ int m = matrix. length, n = matrix[0 ]. length;
70
+ int i = m - 1 , j = 0 ;
71
+ while (i >= 0 && j < n) {
72
+ if (matrix[i][j] == target) {
73
+ return true ;
74
+ }
75
+ if (matrix[i][j] > target) {
76
+ -- i;
77
+ } else {
78
+ ++ j;
79
+ }
80
+ }
81
+ return false ;
82
+ }
83
+ }
84
+ ```
85
+
86
+ ### ** C++**
87
+
88
+ ``` cpp
89
+ class Solution {
90
+ public:
91
+ bool searchMatrix(vector<vector<int >>& matrix, int target) {
92
+ int m = matrix.size(), n = matrix[ 0] .size();
93
+ int i = m - 1, j = 0;
94
+ while (i >= 0 && j < n) {
95
+ if (matrix[ i] [ j ] == target) {
96
+ return true;
97
+ }
98
+ if (matrix[ i] [ j ] > target) {
99
+ --i;
100
+ } else {
101
+ ++j;
102
+ }
103
+ }
104
+ return false;
105
+ }
106
+ };
107
+ ```
56
108
109
+ ### **Go**
110
+
111
+ ```go
112
+ func searchMatrix(matrix [][]int, target int) bool {
113
+ m, n := len(matrix), len(matrix[0])
114
+ i, j := m-1, 0
115
+ for i >= 0 && j < n {
116
+ if matrix[i][j] == target {
117
+ return true
118
+ }
119
+ if matrix[i][j] > target {
120
+ i--
121
+ } else {
122
+ j++
123
+ }
124
+ }
125
+ return false
126
+ }
57
127
```
58
128
59
129
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ bool searchMatrix (vector<vector<int >>& matrix, int target) {
4
+ int m = matrix.size (), n = matrix[0 ].size ();
5
+ int i = m - 1 , j = 0 ;
6
+ while (i >= 0 && j < n) {
7
+ if (matrix[i][j] == target) {
8
+ return true ;
9
+ }
10
+ if (matrix[i][j] > target) {
11
+ --i;
12
+ } else {
13
+ ++j;
14
+ }
15
+ }
16
+ return false ;
17
+ }
18
+ };
Original file line number Diff line number Diff line change
1
+ func searchMatrix (matrix [][]int , target int ) bool {
2
+ m , n := len (matrix ), len (matrix [0 ])
3
+ i , j := m - 1 , 0
4
+ for i >= 0 && j < n {
5
+ if matrix [i ][j ] == target {
6
+ return true
7
+ }
8
+ if matrix [i ][j ] > target {
9
+ i --
10
+ } else {
11
+ j ++
12
+ }
13
+ }
14
+ return false
15
+ }
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public boolean searchMatrix (int [][] matrix , int target ) {
3
- int i = matrix .length - 1 ;
4
- int j = 0 ;
5
- while (i >= 0 && j < matrix [0 ].length ) {
6
- if (matrix [i ][j ] < target ) {
7
- ++j ;
8
- } else if (matrix [i ][j ] > target ) {
3
+ int m = matrix .length , n = matrix [0 ].length ;
4
+ int i = m - 1 , j = 0 ;
5
+ while (i >= 0 && j < n ) {
6
+ if (matrix [i ][j ] == target ) {
7
+ return true ;
8
+ }
9
+ if (matrix [i ][j ] > target ) {
9
10
--i ;
10
11
} else {
11
- return true ;
12
+ ++ j ;
12
13
}
13
14
}
14
15
return false ;
15
16
}
16
- }
17
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def searchMatrix (self , matrix : List [List [int ]], target : int ) -> bool :
3
+ m , n = len (matrix ), len (matrix [0 ])
4
+ i , j = m - 1 , 0
5
+ while i >= 0 and j < n :
6
+ if matrix [i ][j ] == target :
7
+ return True
8
+ if matrix [i ][j ] > target :
9
+ i -= 1
10
+ else :
11
+ j += 1
12
+ return False
You can’t perform that action at this time.
0 commit comments