497. leetcode题目讲解(Python):非重叠矩形中的随机点(Random Point in Non-overlapping Rectangles)

题目如下:
题目

这道题的主要解题思路是利用矩形所包含的整数坐标点来生成对于的权重,如下图所示:

权重计算

对于一个长宽为a,b的矩形,我们可以通过: (a+1)*(b+1)来获取其包含整数点的数量从而生成对应的权重信息。根据权重信息,有两种解法:

解法①:使用random.choices() 根据权重选择矩形,然后生成随机点。 参考代码如下:

解法②:使用bisect.bisect_left(), 根据权重产生的累积概率选择矩形,再生成随机点。参考代码如下:


欢迎关注微信公众号“苔原带”
邮箱