Maximum White Tiles Covered by a Carpet LeetCode solution in Java

1
class Solution {
2
public int maximumWhiteTiles(int[][] tiles, int carpetLen) {
3
Arrays.sort(
4
tiles,
5
(a, b) -> {
6
return a[0] - b[0];
7
});
8
int x = 0;
9
int y = 0;
10
long maxCount = 0;
11
long count = 0;
12

13
while (y < tiles.length && x <= y) {
14
long start = tiles[x][0];
15
long end = tiles[y][1];
16

17
if (end - start + 1 <= carpetLen) {
18
count += tiles[y][1] - tiles[y][0] + 1;
19
maxCount = Math.max(maxCount, count);
20
y++;
21
} else {
22
long midDist = start + carpetLen - 1;
23
long s = tiles[y][0];
24
long e = tiles[y][1];
25
if (midDist <= e && midDist >= s) maxCount = Math.max(maxCount, count + midDist - s + 1);
26
count -= tiles[x][1] - tiles[x][0] + 1;
27
x++;
28
}
29
}
30
return (int) maxCount;
31
}
32
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0