Skip to main content
Back to problems
#1762
Medium Algorithms

Buildings with an ocean view

Array Stack Monotonic Stack
80.9% acceptance
Mar 31, 2026
1324
151
There are n buildings in a line. You are given an integer array heights of size n that represents the heights of the buildings in the line. The ocean is to the right of the buildings. A building has an ocean view if the building can see the ocean without obstructions. Formally, a building has an ocean view if all the buildings to its right have a smaller height. Return a list of indices (0-indexed) of buildings that have an ocean view, sorted in increasing order.

Solution

Rust
Time O(n)
Space O(n)
LeetCode
solution.rs
impl Solution {
  pub fn find_buildings(heights: Vec<i32>) -> Vec<i32> {
    let mut result = Vec::new();
    let mut max_h = 0;
    for i in (0..heights.len()).rev() {
      if heights[i] > max_h {
        result.push(i as i32);
        max_h = heights[i];
      }
    }
    result.reverse();
    result
  }
}