. - 力扣(LeetCode)

由题意得,横坐标相同的点我们不用关心,只需要将所有点的x取出并去重排序,从最小的x[0]位置开始画矩形,这个矩形可以覆盖到横坐标为x[0],x[0]+w中所有的点,到i遇到横坐标比x[0]+w大时,再从x[i]开始画矩形。矩形+1。直到结束即可。

class Solution:
	def minRectanglesToCoverPoints(self, points: List[List[int]], w: int) -> int:
		# 创建数组变量,取出所有点的x坐标,去重后并且对数组排序
		x_list = sorted(list(set([point[0] for point in points])))
		rect = 1
		x = x_list[0]
		for item in x_list:
			if item - x > w:
				x = item
				rect += 1
		return rect