1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| from typing import List
class Solution:
def maximumWhiteTiles(self, tiles: List[List[int]], carpetLen: int) -> int:
tiles.sort()
res = 0
j = 0
cover = 0
i = 0
while res < carpetLen and i < len(tiles):
if tiles[j][0] + carpetLen > tiles[i][1]:
cover += tiles[i][1] - tiles[i][0] + 1
res = max(res, cover)
i += 1
else:
partial = max(0, tiles[j][0] + carpetLen - tiles[i][0])
res = max(res, cover + partial)
cover -= (tiles[j][1] - tiles[j][0] + 1)
j += 1
return res
|