Number of Visible People in a Queue LeetCode solution in Rust
1impl Solution {2pub fn can_see_persons_count(heights: Vec<i32>) -> Vec<i32> {3let n = heights.len();4let mut stk: Vec<i32> = Vec::new();5let mut ans: Vec<i32> = vec![0; n];6for i in (0..n).rev() {7let mut cnt = 0;8while (!stk.is_empty() && heights[i] > stk[stk.len() - 1]) {9stk.pop();10cnt += 1;11}12ans[i] = if stk.is_empty() { cnt } else { cnt + 1 };13stk.push(heights[i]);14}15return ans;16}17}