FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
leetcode-algorithms/src/MaximalSquare.java at master · anishLearnsToCode/leetcode-algorithms · GitHub
anishLearnsToCode
/
leetcode-algorithms
Public
Notifications
You must be signed in to change notification settings
Fork
17
Star
98
Code
Issues
0
Pull requests
0
Discussions
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
leetcode-algorithms
/
src
/
MaximalSquare.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
32 lines (27 loc) · 939 Bytes
Breadcrumbs
leetcode-algorithms
/
src
/
MaximalSquare.java
Copy path
File metadata and controls
32 lines (27 loc) · 939 Bytes
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
// https://leetcode.com/problems/maximal-square
// T: O(m * n)
// S: O(n)
public
class
MaximalSquare
{
public
int
maximalSquare
(
char
[][]
matrix
) {
final
int
columns
=
matrix
[
0
].
length
;
final
int
[]
dp
=
new
int
[
columns
+
1
];
int
maxSideLength
=
0
,
prev
=
0
,
temp
;
for
(
char
[]
row
:
matrix
) {
for
(
int
column
=
0
;
column
<
columns
;
column
++) {
temp
=
dp
[
column
+
1
];
if
(
isOne
(
row
[
column
])) {
dp
[
column
+
1
] =
min
(
dp
[
column
+
1
],
dp
[
column
],
prev
) +
1
;
}
else
dp
[
column
+
1
] =
0
;
maxSideLength
=
Math
.
max
(
maxSideLength
,
dp
[
column
+
1
]);
prev
=
temp
;
}
}
return
maxSideLength
*
maxSideLength
;
}
private
int
min
(
int
a
,
int
b
,
int
c
) {
return
Math
.
min
(
a
,
Math
.
min
(
b
,
c
));
}
private
boolean
isOne
(
char
c
) {
return
c
==
'1'
;
}
}
Back
|
FazBrowse Home
|
New Git URL