谷歌面试题求解.

input是一个矩形,生成矩形里的随机点。followup 1: input有很多矩形,不会重叠; followup 2: input很多矩形,而且会重叠。
之前面经也出现过,典型题。followup2没有要求实现,我大概说了下思路,中心思想就是分割成一个个竖矩形。先把矩形分成左右edge,然后edge根据x coord排序,然后左边扫描线扫过去。事前可能还需要做下discretization,把所有坐标对应到不同的integer index; 扫描过程中可以运用线段树优化,使每次query和update控制在logN. 大家可以参考Atlantis这道POJ的题,是求重叠矩形的总面积, 很经典的扫描线+线段树.

posted @ 2018-01-16 15:41  jxr041100  阅读(484)  评论(0编辑  收藏  举报