1944. Number of Visible People in a Queue Hard

@problem@discussion
#Array#Stack#Monotonic Stack



1/**
2 * [1944] Number of Visible People in a Queue
3 *
4 * There are n people standing in a queue, and they numbered from 0 to n - 1 in left to right order. You are given an array heights of distinct integers where heights[i] represents the height of the i^th person.
5 * A person can see another person to their right in the queue if everybody in between is shorter than both of them. More formally, the i^th person can see the j^th person if i < j and min(heights[i], heights[j]) > max(heights[i+1], heights[i+2], ..., heights[j-1]).
6 * Return an array answer of length n where answer[i] is the number of people the i^th person can see to their right in the queue.
7 *  
8 * Example 1:
9 * <img alt="" src="https://assets.leetcode.com/uploads/2021/05/29/queue-plane.jpg" style="width: 600px; height: 247px;" />
10 * 
11 * Input: heights = [10,6,8,5,11,9]
12 * Output: [3,1,2,1,1,0]
13 * Explanation:
14 * Person 0 can see person 1, 2, and 4.
15 * Person 1 can see person 2.
16 * Person 2 can see person 3 and 4.
17 * Person 3 can see person 4.
18 * Person 4 can see person 5.
19 * Person 5 can see no one since nobody is to the right of them.
20 * 
21 * Example 2:
22 * 
23 * Input: heights = [5,1,2,3,10]
24 * Output: [4,1,1,1,0]
25 * 
26 *  
27 * Constraints:
28 * 
29 * 	n == heights.length
30 * 	1 <= n <= 10^5
31 * 	1 <= heights[i] <= 10^5
32 * 	All the values of heights are unique.
33 * 
34 */
35pub struct Solution {}
36
37// problem: https://leetcode.com/problems/number-of-visible-people-in-a-queue/
38// discuss: https://leetcode.com/problems/number-of-visible-people-in-a-queue/discuss/?currentPage=1&orderBy=most_votes&query=
39
40// submission codes start here
41
42impl Solution {
43    pub fn can_see_persons_count(heights: Vec<i32>) -> Vec<i32> {
44        vec![]
45    }
46}
47
48// submission codes end
49
50#[cfg(test)]
51mod tests {
52    use super::*;
53
54    #[test]
55    fn test_1944() {
56    }
57}
58


Back
© 2025 bowen.ge All Rights Reserved.