Problem
Ask
Submissions

Problem: Number of Visible People in a Queue

Hard
40 min
Explore how to apply stacks to solve the problem of counting visible people in a queue based on height constraints. Learn to analyze and implement a solution that efficiently calculates visibility to the right for each individual by assessing height relationships, improving your understanding of stack applications in coding interviews.

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.

Problem
Ask
Submissions

Problem: Number of Visible People in a Queue

Hard
40 min
Explore how to apply stacks to solve the problem of counting visible people in a queue based on height constraints. Learn to analyze and implement a solution that efficiently calculates visibility to the right for each individual by assessing height relationships, improving your understanding of stack applications in coding interviews.

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.