How do you arrange buildings to ensure clear sea views optimally?

Coding
Medium
Microsoft
101.9K views

An algorithmic challenge to find buildings with unobstructed views of the sea, typically solved by iterating backwards and tracking maximum height.

Why Interviewers Ask This

This problem tests your ability to optimize time complexity and think about spatial relationships in linear data structures. It evaluates your skill in reducing a geometric problem to a simple iteration with state tracking. Interviewers look for solutions that avoid brute-force O(n^2) approaches in favor of efficient O(n) passes.

How to Answer This Question

Iterate through the array of building heights from right to left (assuming the sea is on the right). Maintain a variable for the maximum height seen so far. For each building, if its height is greater than the current maximum, it has a clear view. Update the maximum height and record the building. This single pass ensures optimal time complexity.

Key Points to Cover

  • Right-to-left iteration
  • Tracking maximum height dynamically
  • Comparison logic for visibility
  • Optimal time complexity

Sample Answer

To solve this, I iterate through the building heights from right to left. I keep track of the maximum height encountered so far. If the current building's height is strictly greater than the maximum, it has a clear view of the sea because no taller building exists to its right. I then update the maximum height to include this building. This approach runs in O(n) time and uses O(1) extra space, making it highly efficient.

Common Mistakes to Avoid

  • Iterating left to right incorrectly
  • Using nested loops leading to O(n^2)
  • Failing to update the maximum height correctly

Practice This Question with AI

Answer this question orally or via text and get instant AI-powered feedback on your response quality, structure, and delivery.

Start Practicing

Related Interview Questions

Browse all 26 Coding questionsBrowse all 84 Microsoft questions