2021级新生程序设计班级天梯赛:2-1 《天堂旅行团》

这篇博客探讨了一个关于天堂高度的算法问题,其中每个天堂的高度代表了它在人们心中的位置。通过输入一系列天堂的高度,我们需要找出在所有天堂中排名第二的高度。输入样例给出了三个天堂的高度,最高为5,其次是4,因此输出了4作为答案。这个问题涉及到排序和查找算法,揭示了在数据处理中找到特定排名元素的重要性。
摘要由CSDN通过智能技术生成

“她是乌云中的最后一缕光,
牢狱里的最后一把钥匙,
我伸手穿过头顶河水,
抓到的最后一根稻草。” ——《天堂旅行团》

 

众所周知每个天堂都有自己的高度,这些高度决定了它们在人们心中的位置
高度越高,对应的位置也就越靠前
给你一些天堂的高度h,请你输出在人们心中位置能排在第二的天堂高度

输入格式

第一行一个正整数 n(2≤n≤107)
第二行 n 个正整数 h1​,h2​,...,hn​ 分别表示每个天堂的高度 (1≤hi​≤105)

输出格式

输出一个正整数,代表能排在第二位的天堂高度

输入样例

3
3 5 4

输出样例

4

样例说明

该样例中,最高的天堂高度为5 ,位置排在第二的天堂高度为 4,所以结果为4

# include <stdio.h>
int a[10000007];
int max ( int a, int b ) 
{ 
    return a > b ? a : b; 
}
int main () 
{
 int n; scanf("%d", &n);
 int cnt_max = 0, val_max = 0, val_secmax =0;
 for ( int i = 0; i < n; i ++ ) 
    {
        scanf("%d", &a[i]);
        val_max = max ( val_max, a[i] );
    }
 for ( int i = 0; i < n; i ++ ) 
    {
        if ( a[i] == val_max ) cnt_max ++;
        if ( a[i] < val_max ) val_secmax =max ( a[i], val_secmax );
    }
    if ( cnt_max > 1 ) printf("%d", val_max);
    else printf("%d", val_secmax);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值