How can you arrange buildings so each has a clear view of the sea?

DSA
Medium
Microsoft Corporation
148.2K views

This problem tests your ability to optimize an array-based scenario using monotonic stacks or reverse iteration to solve visibility constraints efficiently.

Why Interviewers Ask This

This question checks your proficiency in array manipulation and optimization techniques. It requires recognizing patterns where a single pass or stack-based approach yields better performance than brute force. It highlights logical thinking in geometric or constraint-based problems.

How to Answer This Question

Iterate through the array from right to left, assuming the sea is on the right. Maintain a variable for the maximum height seen so far. If the current building is taller than the max, it has a clear view. Update the max height accordingly. Count or collect such buildings. This ensures O(n) time complexity.

Key Points to Cover

  • Right-to-left iteration
  • Tracking maximum height
  • Visibility condition
  • Linear time complexity

Sample Answer

To solve this, I iterate through the array of building heights from right to left, assuming the sea is on the right side. I maintain a variable tracking the maximum height encountered so far. For each building, if its he…

Common Mistakes to Avoid

  • Iterating left to right incorrectly
  • Comparing adjacent buildings only
  • Ignoring the sea direction assumption

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 127 DSA questionsBrowse all 50 Microsoft Corporation questions