Python 3 || 6 lines, binary search || T/S: 66% /  37%
\nclass Solution:\n    def minRectanglesToCoverPoints(self, points: List[List[int]], w: int) -> int:\n    \n        x = sorted(list(zip(*points))[0])\n        n
```\nclass Solution:\n    def minRectanglesToCoverPoints(self, points: List[List[int]], w: int) -> int:\n    \n        x = sorted(list(zip(*points))[0])\n        n, cnt, ptr = len(x), 0, 0\n\n        while ptr < n:\n            ptr = bisect_right(x, x[ptr]+w, lo = ptr)\n            cnt+= 1\n     \n        return cnt\n```\n\n[https://leetcode.com/problems/minimum-rectangles-to-cover-points/submissions/1266889158/](https://leetcode.com/problems/minimum-rectangles-to-cover-points/submissions/1266889158/)\n\n\nI could be wrong, but I think that time complexity is *O*(*N*log*N*) and space complexity is *O*(*N*), in which *N* ~ `len(points)`.
['Python3']