Number of Visible People in a Queue

Try to solve the Number of Visible People in a Queue problem.

Statement

You are given an array heights representing n people standing in a queue, numbered from 0 to n - 1 from left to right. Each element heights[i] denotes the height of the person at position i. All heights are distinct.

A person at position i can see a person at position j (i < j) to their right if every person between them is shorter than both heights[i] and heights[j].

Formally, person i can see person j if:

  • i<ji < j and min(heights[i],heights[j])>max(heights[i+1],heights[i+2],...,heights[j1])min(heights[i], heights[j]) > max(heights[i+1], heights[i+2], ..., heights[j-1])

Your task is to return an array answer of length n, where answer[i] is the number of people that person i can see to their right in the queue.

Constraints:

  • 11 \leq n 1000\leq 1000

  • 11 \leq heights[i] 1000\leq 1000

  • All elements in heights are unique.

Examples

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.