Number of Visible People in a Queue LeetCode solution in C++
1class Solution {2public:3vector<int> canSeePersonsCount(vector<int> &h) {4vector<int> ans;5stack<int> s;6int a = 0;7for (int i = h.size() - 1; i >= 0; i--) {8if (s.empty()) {9ans.push_back(a);10s.push(h[i]);11a++;12} else {13if (s.top() > h[i]) {14ans.push_back(1);15s.push(h[i]);16a++;17} else {18int b = 0;19while (!s.empty() && s.top() < h[i]) {20s.pop();21a--;22b++;23}24if (!s.empty()) b++;25ans.push_back(b);26s.push(h[i]);27a++;28}29}30}31reverse(ans.begin(), ans.end());32return ans;33}34};