Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    218 - The Skyline Problem.

    Hard

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city when viewed from a distance. Given the locations and heights of all the buildings, return the skyline formed by these buildings collectively.

    The geometric information of each building is given in the array buildings where <code>buildingsi = left<sub>i</sub>, right<sub>i</sub>, height<sub>i</sub></code>:

    • <code>left<sub>i</sub></code> is the x coordinate of the left edge of the <code>i<sup>th</sup></code> building.

    • <code>right<sub>i</sub></code> is the x coordinate of the right edge of the <code>i<sup>th</sup></code> building.

    • <code>height<sub>i</sub></code> is the height of the <code>i<sup>th</sup></code> building.

    You may assume all buildings are perfect rectangles grounded on an absolutely flat surface at height 0.

    The skyline should be represented as a list of "key points" sorted by their x-coordinate in the form <code>[x<sub>1</sub>,y<sub>1</sub>,x<sub>2</sub>,y<sub>2</sub>,...]</code>. Each key point is the left endpoint of some horizontal segment in the skyline except the last point in the list, which always has a y-coordinate 0 and is used to mark the skyline's termination where the rightmost building ends. Any ground between the leftmost and rightmost buildings should be part of the skyline's contour.

    Note: There must be no consecutive horizontal lines of equal height in the output skyline. For instance, [...,[2 3],[4 5],[7 5],[11 5],[12 7],...] is not acceptable; the three lines of height 5 should be merged into one in the final output as such: [...,[2 3],[4 5],[12 7],...]

    Example 1:

    Input: buildings = [2,9,10,3,7,15,5,12,12,15,20,10,19,24,8]

    Output: [2,10,3,15,7,12,12,0,15,10,20,8,24,0]

    Explanation: Figure A shows the buildings of the input. Figure B shows the skyline formed by those buildings. The red points in figure B represent the key points in the output list.

    Example 2:

    Input: buildings = [0,2,3,2,5,3]

    Output: [0,3,5,0]

    Constraints:

    • <code>1 <= buildings.length <= 10<sup>4</sup></code>

    • <code>0 <= left<sub>i</sub>< right<sub>i</sub><= 2<sup>31</sup> - 1</code>

    • <code>1 <= height<sub>i</sub><= 2<sup>31</sup> - 1</code>

    • buildings is sorted by <code>left<sub>i</sub></code> in non-decreasing order.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final List<List<Integer>> getSkyline(Array<IntArray> blds)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait