PDD笔试(20250325)——身高排序

题目内容

N个同学排成一列,最理想的情况是按身高从小到大排列,这样每个人的视线都不会被遮挡,可以看到他前面的所有人。但由于同学们没有那么听话,可能会出现高个子同学排在前面的情况,导致后面的同学视线被遮挡。多多想用一个指标来衡量队列的整齐程度:每个同学能看到的同学的总数,这个值越大,说明队列越整齐。请你帮多多计算一下

具体来说,对于第1个同学,如果第i+ 1、i+ 2、i+ 3个同学都比他矮,i+ 4个同学比他高(或一样高),则他能看到4个同学,但由于视线被遮挡,第i+ 5、i+ 6..、i+ r个同学都无法再看到(即便第i+ z的身高比i + 4高)

单调栈可解:

import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int[] hight = new int[num];
        ArrayDeque<Integer> st = new ArrayDeque<>();
        for(int i = 0; i < num; ++i){
            hight[i] = sc.nextInt();
        }

        int[] res = new int[num];
        for (int i = num-1; i >= 0; --i){
            while (!st.isEmpty() && hight[i] > hight[st.peek()])    //当前元素大于栈顶元素,则弹出栈顶元素
                st.pop();
            if (!st.isEmpty() && hight[i] == hight[st.peek()])  //当前元素等于栈顶,则只算1人
                res[i] = st.peek() - i;
            else if(!st.isEmpty())      //当前元素小于栈顶元素,则计算差值
                res[i] = st.peek() - i;
            else        //栈空,则从当前元素到默认都计入
                res[i] = (num- 1) - i ;
            st.push(i);
        }
        System.out.println(Arrays.stream(res).sum());
    }
}

}

全部评论

相关推荐

WebKit引擎是一种开源的浏览器引擎,最初由苹果公司开发,用于其Safari浏览器。https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&amp;uuid=d9738d5978ec4ce280c08a4ae4cc1f95它是一种用于解析和渲染Web内容的核心技术,被广泛应用于多种桌面和移动设备的浏览器中,包括Safari、Chrome(早期版本)、Opera等。WebKit引擎的主要作用是将HTML、CSS和JavaScript等Web技术转化为用户可以理解和交互的页面。具体而言,它有以下几个主要特点和作用:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&amp;uuid=d9738d5978ec4ce280c08a4ae4cc1f95解析和渲染HTML/CSS:WebKit引擎负责解析HTML和CSS代码,构建DOM(文档对象模型)树和CSSOM(CSS对象模型)树,并将其绘制在屏幕上。它能够快速且准确地处理复杂的网页布局和样式。JavaScript执行环境:WebKit引擎内置了JavaScript解释器,能够解析和执行JavaScript代码。它支持即时编译(JIT)技术,可以提高JavaScript代码的执行速度。页面呈现效果:WebKit引擎对于网页的渲染效果和交互体验非常重要。它支持CSS3和HTML5等最新的Web标准,可以实现丰富的页面效果,如过渡、动画、阴影等。跨平台支持:WebKit引擎具有良好的跨平台性能,可以在不同的操作系统上运行,包括iOS、macOS、Windows和Linux等。这使得开发者可以使用相同的代码在多个平台上开发和部署Web应用程序。高效的渲染引擎:WebKit引擎采用了一系列优化技术,如离屏渲染、图层合成、硬件加速等,以提高页面加载速度和响应性能,使用户能够更流畅地浏览网页。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务