PAT 1060 爱丁顿数 (C++实现)

news/2024/7/15 18:58:39 标签: c++, 算法, 图论

英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。

现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。

输入格式:

输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。

输出格式:

在一行中给出 N 天的爱丁顿数。

输入样例:

10
6 7 6 9 3 10 8 2 7 8

输出样例:

6

【解读】

这题描述的很不清楚,“有 E 天骑车超过 E 英里的最大整数 E”指的是“至少有 E 天骑车超过 E 英里的最大整数 E”,>=即可,不一定刚好相等。另外我采取的算法应该是效率最高算法之一,不需要排序。

#include <iostream>
#include <cstring>
using namespace std;

const int MAX = 1000001;

int main()
{
    int n;
    cin >> n;
    int i = 0;
    int* arr = new int[MAX];
    for(i = 0;i <= n;i++)
    {
        arr[i] = 0;
    }
    int tmp = 0;
    int max = 0;
    for (i = 0; i < n; i++)
    {
        cin >> tmp;
        if (tmp > max)
            max = tmp;
        arr[tmp]++;  //计数
    }
    int bigger = 0;
    for (i = max; i >= 0; i--)
    {
            if (bigger >= i)
            {
                break;
            }
            bigger += arr[i];
    }
    cout << i;
    delete[] arr;
    return 0;
}


http://www.niftyadmin.cn/n/29849.html

相关文章

【1】初识Linux

学习笔记目录 学习教程&#xff1a;B站 “黑马程序员” 初识Linux--入门Linux基础命令--会用Linux权限管控--懂权限Linux实用操作--熟练实战软件部署--深入掌握脚本&自动化--用的更强项目实战--学到经验云平台技术--紧跟潮流 操作系统概述 1.计算机由硬件和软件两个主要…

总结:计算机中字符串比较大小的规则

总结&#xff1a;计算机中字符串比较大小的规则一背景&#xff1a;二Unicode编码表&#xff1a;字符越靠后&#xff0c;对应的十进制值越大三单个字符之间比较规则&#xff1a;1.Java编程中常用的Character类compareTo()方法比较单个字符大小&#xff1a;底层解析2案例演示&…

Linux存活指令和具体使用方法

Linux的基本指令 1 .Linux的指令究竟是在做什么&#xff1f; 我们在linux中执行的指令就是类似于我们在小学的时候学习的Windows中的一些简单的操作&#xff0c;例如建一个文件夹之类的 pwd&#xff1a;表示的意思是显示当前的路径&#xff08;有了这个路径&#xff0c;我就可…

17 | 如何做好面试后的复盘?将经验提升为能力

前言 前言&#xff1a;面试是最好的查漏补缺机会&#xff0c;做好面试复盘又是十分的重要。 文章目录前言一. 关于复盘1. 什么是复盘&#xff08;What&#xff09;2. 复盘的目的&#xff08;Why&#xff09;3. 什么时候需要复盘&#xff08;When&#xff09;4. 怎么进行复盘&am…

初出茅庐——索引和文档的基本操作

本接你能学到什么&#xff1f; Elasticsearch节点信息的操作索引的创建、查询、删除文档的创建、查询、修改、删除 官网对Elasticsearch的介绍有一条是&#xff1a;分布式、RESTFul风格的搜索和分析&#xff0c;这就说明我们可以通过RESTFul风格接口请求获取数据及信息&#x…

Mongodb基础操作

打开Mongodb服务&#xff0c;打开Robo 3T&#xff0c;链接服务并创建数据库&#xff1a; 创建表&#xff08;集合&#xff09;&#xff1a; 双击打开一个界面&#xff1a; 添加数据 查询book表&#xff1a; 添加属性名&#xff08;新数据&#xff09;&#xff1a; 查询&#xf…

C++空间命名

前言 提示&#xff1a;由于C是在C语言基础之上&#xff0c;增加了很多新的东西。 本文讲解命名空间的具体使用方法 文章目录 目录 前言 一、命名空间 二、命名空间定义 1.嵌套性 2.和并性 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一…

【015 关键字】typedef和define的区别

一、两者区别 关键字typedefdefine&#xff08;宏&#xff09;作用不同定义&#xff08;标识符或关键字&#xff09;别名简单字符串替换执行时间不同编译过程一部分预处理过程完成作用域不同从定义到花括号“}”截至从定义到文件结尾截止 对指针操作不同 typedef int* INTPTR…