[itint5] 刷题记录板 - 美国米群网 - 海外华人留学生最大面试求职社交平台 - 计算机 商科 面试 面经 内推 刷题 算法 职场 绿卡 家庭 休闲 - Powered by Discuz!



[itint5] 刷题记录板 - 美国米群网 - 海外华人留学生最大面试求职社交平台 - 计算机 商科 面试 面经 内推 刷题 算法 职场 绿卡 家庭 休闲 - Powered by Discuz!

有一个H * W的屏幕,左上角坐标为(0,0),右下角坐标为(H,W)。屏幕中已有n个与坐标轴平行的矩形窗口,存放在数组rects中,第i个矩形窗口的左上坐标为(rects【i】.x1, rects【i】.y1),右下坐标为(rects【i】.x2, rects【i】.y2)。现需要放置一个h * w的新矩形窗口,使得新窗口与已有的窗口重叠的总面积最小。请计算最小的重叠总面积。
已知条件:
• 已有的窗口都完全在屏幕中。
• 摆放的新窗口也要完全在屏幕中。
• 已有的窗口互相不重叠。
• W, H<=10000,n<=100。



Solution: 贪心算法.
为使矩形覆盖最小:
所求矩形的上边要么贴着边界,要么贴着某个已有矩形的下边
所求矩形的下边要么贴着边界,要么贴着某个已有矩形的上边
所求矩形的左边要么贴着边界,要么贴着某个已有矩形的右边
所求矩形的右边要么贴着边界,要么贴着某个已有矩形的左边
总可以找到一个满足最小覆盖条件的矩形,这个矩形的边要么与大窗口的边缘重合,要么和已知矩形的边重合。 这样,只需要枚举O(n^2)的左上点坐标,总的时间复杂度O(n^3).


Read full article from [itint5] 刷题记录板 - 美国米群网 - 海外华人留学生最大面试求职社交平台 - 计算机 商科 面试 面经 内推 刷题 算法 职场 绿卡 家庭 休闲 - Powered by Discuz!


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts