How can you arrange buildings to ensure clear sea views with optimal time complexity?

DSA
Medium
Microsoft Corporation
131.1K views

A variation of the 'next greater element' or skyline problem, testing array traversal and stack usage.

Why Interviewers Ask This

This problem tests your ability to optimize array processing problems using monotonic stacks or similar patterns. It checks if you can identify the pattern of 'clearing' obstacles (taller buildings) to solve a visibility constraint efficiently.

How to Answer This Question

Clarify the problem constraints: does 'view' mean seeing past taller buildings? Assume we need to count or arrange such that no building blocks another. A common approach involves iterating from right to left, maintaining a stack of visible heights. If a building is shorter than the top of the stack, it has a view. Pop taller buildings until a valid view is found or the stack is empty.

Key Points to Cover

  • Right-to-left iteration
  • Monotonic stack usage
  • Blocking logic
  • Linear time complexity

Sample Answer

To solve this, I would iterate through the array of building heights from right to left. I'll maintain a stack of building heights that are visible from the rightmost side. For each building, if it is taller than the bui…

Common Mistakes to Avoid

  • Using nested loops (O(n^2))
  • Misinterpreting the visibility rule
  • Incorrect stack management

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 107 DSA questionsBrowse all 34 Microsoft Corporation questions