Java小记-腾讯2020校招-后台-逛街

题目描述:

小Q在周末的时候和他的小伙伴来到大城市逛街,一条步行街上有很多高楼,共有n座高楼排成一行。

小Q从第一栋一直走到了最后一栋,小Q从来都没有见到这么多的楼,所以他想知道他在每栋楼的位置处能看到多少栋楼呢?(当前面的楼的高度大于等于后面的楼时,后面的楼将被挡住)

输入描述

输入第一行将包含一个数字n,代表楼的栋数,接下来的一行将包含n个数字wi(1<=i<=n),代表每一栋楼的高度。

1<=n<=100000;

1<=wi<=100000;

输出描述

输出一行,包含空格分割的n个数字vi,分别代表小Q在第i栋楼时能看到的楼的数量。

样例输入

复制代码
6
5 3 8 3 2 5

样例输出

复制代码
3 3 5 4 4 4

实现:

java 复制代码
import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int all = Integer.parseInt(sc.nextLine());
        String lin = sc.nextLine();
        String [] arr = lin.split(" ");
        int num=1;
        StringBuffer sb = new StringBuffer();

        for(int i = 0; i < all; i++){
            int lnext;
            int lmax = 0;
            int lnum = 0;
            int rnext;
            int rmax = 0;
            int rnum = 0;
            //检查左侧
            if(i > 0){
                int j = i;
                while(j-1>=0){
                    j--;
                    lnext = Integer.parseInt(arr[j]);
                    if(lnext > lmax){
                        lnum++;
                        lmax = lnext;
                    }
                }
            }
            //检查右侧
            if(i + 1 < all){
                int j = i;
                while(j+1 < all){
                    j++;
                    rnext = Integer.parseInt(arr[j]);
                    if(rnext > rmax){
                        rnum++;
                        rmax = rnext;
                    }
                }
            }
            num = lnum + rnum + 1;
            sb.append(num).append(" ");

        }
        System.out.println(sb.toString());
    }
}
相关推荐
比奇堡派星星几秒前
Linux4.4使用AW9523
linux·开发语言·arm开发·驱动开发
民乐团扒谱机3 分钟前
【微实验】数模美赛备赛MATLAB实战:一文速通各种“马尔可夫”(Markov Model)
开发语言·人工智能·笔记·matlab·数据挖掘·马尔科夫链·线性系统
Z1Jxxx4 分钟前
字符串翻转
开发语言·c++·算法
闻缺陷则喜何志丹4 分钟前
【前缀和 期望】P7875 「SWTR-7」IOI 2077|普及+
c++·算法·前缀和·洛谷·期望
爱喝水的鱼丶12 分钟前
SAP-ABAP:全面破解SAP与第三方系统集成超时难题:从应急排查到根治方案
开发语言·sap·abap·接口集成·开发交流
AI小怪兽13 分钟前
基于YOLO11的航空安保与异常无人机检测系统(Python源码+数据集+Pyside6界面)
开发语言·人工智能·python·yolo·计算机视觉·无人机
CSDN_RTKLIB15 分钟前
ODR、linkage问题解惑
开发语言·c++
Aevget16 分钟前
智能高效Go开发工具GoLand v2025.3全新上线——新增资源泄漏分析
开发语言·ide·后端·golang·go
CoovallyAIHub19 分钟前
超越Sora的开源思路:如何用预训练组件高效训练你的视频扩散模型?(附训练代码)
深度学习·算法·计算机视觉
源来猿往27 分钟前
yolov8n结构化剪枝
算法·yolo·剪枝