atcoder它A Mountaineer

atcoder它A Mountaineer

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Time limit : 2sec / Stack limit : 256MB / Memory limit : 256MB

Problem

Dave is a mountaineer. He is now climbing a range of mountains.

On this mountains, there are N huts located on a straight lining from east to west..

The huts are numbered sequentially from 1 to N. The west most hut is 1, the east most hut is N. The i-th hut is located at an elevation of hi meters.

Dave wants to know how many huts he can look down and see from each hut.

He can see the j-th hut from the i-th hut if all huts between the i-th hut and the j-th hut including the j-th one are located at equal or lower elevation than hi.

Note that the i-th hut itself is not included in the hut he can see from the i-th hut.


Input

The input will be given in the following format from the Standard Input.

N
h1
h2
:
hN
  • On the first line, you will be given N(1≦N≦105), the number of huts.
  • Then N lines follow, each of which contains hi(1≦hi≦105) the elevation of the i-th hut.

Achievements and Points

Your answer will be checked for two levels.

  • When you pass every test case which satisfies 1≦N≦3,000, you will be awarded 30 points.
  • In addition, if you pass all the rest test cases which satisfy 1≦N≦105, you will be awarded 70 more points, summed up to 100points.

Output

On the i-th line, output the number of huts Dave can see from the i-th hut. Make sure to insert a line break at the end of the output.


Input Example 1

     
     
  1. 3
  2. 1
  3. 2
  4. 3

Output Example 1

     
     
  1. 0
  2. 1
  3. 2

From each hut he can see every huts on the west.


Input Example 2

     
     
  1. 5
  2. 1
  3. 2
  4. 3
  5. 2
  6. 1

Output Example 2

     
     
  1. 0
  2. 1
  3. 4
  4. 1
  5. 0

From the 1st and 5th hut he can’t see any other huts.

From the 2nd hut he can only see the 1st hut.

From the 4th hut he can only see the 5th hut.

From the 3rd hut he can see every other huts.


Input Example 3

     
     
  1. 5
  2. 3
  3. 2
  4. 1
  5. 2
  6. 3

Output Example 3

     
     
  1. 4
  2. 2
  3. 0
  4. 2
  5. 4

Note that he can see the huts on the equal elevation.


Input Example 4

     
     
  1. 8
  2. 4
  3. 3
  4. 2
  5. 3
  6. 4
  7. 3
  8. 2
  9. 1

Output Example 4

     
     
  1. 7
  2. 2
  3. 0
  4. 2
  5. 7
  6. 2
  7. 1
  8. 0

思路:本题是个简单题,我却一直面对大数据时TLE。直接上TLE源代码

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int count = sc.nextInt();
		int num[] = new int[count];
		int flag[] = new int[count];
		for (int i = 0; i < count; i++) {
			num[i] = sc.nextInt();
		}
		for (int i = 0; i < count; i++) {
			for (int j = i - 1; j >= 0 && num[i] >= num[j]; j--,flag[i]++);
			for (int j = i + 1; j < count && num[i] >= num[j]; j++,flag[i]++);
			System.out.println(flag[i]);
 
		}
	}
}

以下是AC源代码。依据上面的源代码做了一定程度上的优化。从某种程度上来说,更改了部分思路,和
https://oj.leetcode.com/problems/candy/有点像。

import java.util.Scanner;public class Main {	public static void main(String[] args) {		Scanner sc = new Scanner(System.in);		int count = sc.nextInt();		int num[] = new int[count];		int[] back = new int[count];		int[] forward = new int[count];		for (int i = 0; i < count; i++) {			num[i] = sc.nextInt();		}		for (int i = 0; i < count; i++) {			for (int j = i - 1; j >= 0 && num[i] >= num[j]; 					back[i] = back[i]+ back[j] + 1, j = j - back[j] - 1);		}		for (int i = count - 1; i >= 0; i--) {			for (int j = i + 1; j < count && num[i] >= num[j];					forward[i] = forward[i]+ forward[j] + 1, j = j + forward[j] + 1);		}		for (int i = 0; i < count; i++) {			System.out.println(back[i] + forward[i]);		}	}}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117392.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • navcat15激活码【最新永久激活】

    (navcat15激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSW…

    2022年3月27日
  • iOS kvc

    iOS kvc

    2022年1月10日
  • aspectjweaver的作用[通俗易懂]

    aspectjweaver的作用[通俗易懂]aspectjweaver的作用欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown将代码片显示选择的

    2022年7月12日
  • DVP和MIPI接口的简单区别

    DVP和MIPI接口的简单区别区别1、DVP接口:DVP是并行传输,传输速度较慢,传输的带宽低。2、MIPI接口:MIPI是差分串行传输,速度快,抗干扰。目前分为D/C/MPHY三类。主流手机模组现在是使用MIPI_DPHY或CPHY传输:DPHY传输时使用4对差分信号传输图像数据和一对差分时钟信号。CPHY使用3组每组3根单端信号传输数据,每根单端信号能表达3个逻辑电平,相比数据传输率更高,使用引脚数更少。1、DVP接口:使用需要PCLK\sensor输出时钟、MCLK(XCLK)\外部时钟输入、VSYNC\场同步、

    2022年6月1日
  • sqlserver字符串转换为日期_sqlserver默认日期格式

    sqlserver字符串转换为日期_sqlserver默认日期格式MyBeNsqlserver字符串转成日期格式在SQLServer数据库中,SQLServer日期时间格式转换字符串可以改变SQLServer日期和时间的格式,是每个SQL数据库用户都应该掌握的。本文我们主要就介绍一下SQLServer日期时间转字符串的相关知识,接下来就让我们一起来了解一下这部分内容。字符串转日期时间:convert(datetime,列名)日期时间转字符串…

    2022年10月8日
  • js 浏览器全屏_js判断浏览器是否全屏

    js 浏览器全屏_js判断浏览器是否全屏这篇博文写的比较好,收藏下https://www.cnblogs.com/javaee6/p/3756249.html全屏有兼容性问题,这里针对谷歌浏览器举例Document

    2022年10月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号