#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)
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
}
}