【LeetCode每日一题】1944. 队列中可以看到的人数(单调栈)

2024-1-5

1944. 队列中可以看到的人数

在这里插入图片描述

在这里插入图片描述

思路:

1.采用单调栈,从最后一个高度开始,从后往前进行遍历

2.用一个循环,先解决比当前低的身高

3.因为栈不为空且栈顶比现在身高低,当前身高把栈顶身高挡住了,栈顶无法影响后续,弹出,记录看到的低栈顶

4.当前栈不为空,并且之前已经排除了比当前栈顶元素低的,所以当前栈顶元素比当前身高要高,记录看到的这个高的

5.每次循环,都对当前身高进行压栈,用来更新栈顶元素。

//1944. 队列中可以看到的人数---单调栈
    public int[] canSeePersonsCount(int[] heights) {
   

        int n = heights.length;
        Deque<Integer> stack = new ArrayDeque<>();
        int[]answer = new int[n];
        for (int i = n-1; i >=0 ; i--) {
   
            //int h = heights[i];
            while (!stack.isEmpty()&&stack.peek()<heights[i]){
   //
                //栈不为空且当前高度大于栈顶元素
                stack.pop();
                //当前高度把栈顶挡住了,栈顶出栈,看栈中的下一个元素
                answer[i]++;
                //看到了一个比当前低的,加1
            }
            if (!stack.isEmpty()){
   
                //栈不为空,当前高度小于栈顶元素
                answer[i]++;
                //只能看到栈顶,能看见一个比当前高的,加1
            }
            stack.push(heights[i]);
            //当前高度压栈
            
        }
        return answer;

    }

点击移步博客主页,欢迎光临~

偷cyk的图

相关推荐

  1. LeetCode每日 | 1944. 队列可以看到人数

    2024-01-06 01:38:01       41 阅读
  2. 1944. 队列可以看到人数

    2024-01-06 01:38:01       39 阅读
  3. LC 1944. 队列可以看到人数

    2024-01-06 01:38:01       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 01:38:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 01:38:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 01:38:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 01:38:01       20 阅读

热门阅读

  1. uniapp获取日期

    2024-01-06 01:38:01       42 阅读
  2. uView DatetimePicker 选择器

    2024-01-06 01:38:01       39 阅读
  3. 新版Edge卸载

    2024-01-06 01:38:01       40 阅读
  4. LC 1944. 队列中可以看到的人数

    2024-01-06 01:38:01       43 阅读
  5. 如何在竞争激烈的市场中获得更多的客户?

    2024-01-06 01:38:01       34 阅读
  6. Day14- 二叉树part03

    2024-01-06 01:38:01       39 阅读
  7. 【Linux】linux配置静态IP、动态IP方法汇总

    2024-01-06 01:38:01       46 阅读