Maximum White Tiles Covered by a Carpet LeetCode solution in Java
1class Solution {2public int maximumWhiteTiles(int[][] tiles, int carpetLen) {3Arrays.sort(4tiles,5(a, b) -> {6return a[0] - b[0];7});8int x = 0;9int y = 0;10long maxCount = 0;11long count = 0;1213while (y < tiles.length && x <= y) {14long start = tiles[x][0];15long end = tiles[y][1];1617if (end - start + 1 <= carpetLen) {18count += tiles[y][1] - tiles[y][0] + 1;19maxCount = Math.max(maxCount, count);20y++;21} else {22long midDist = start + carpetLen - 1;23long s = tiles[y][0];24long e = tiles[y][1];25if (midDist <= e && midDist >= s) maxCount = Math.max(maxCount, count + midDist - s + 1);26count -= tiles[x][1] - tiles[x][0] + 1;27x++;28}29}30return (int) maxCount;31}32}