PAT——1060. 爱丁顿数
英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”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
package com.hone.basical;
import java.util.Arrays;
import java.util.Scanner;
/**
* 原题目:https://www.patest.cn/contests/pat-b-practise/1059
* @author Xia
* 思路:拿到这个题目的第一个想法是将所有的数据排序,然后从大到小开始输出。
* 试想一下最佳的情况:第i天的时候,刚好a[i] = (大于a[i]的天数)=N-i,则大于a[i]的天数则为N-i-1
* 那么如果没有相等的情况,则刚好a[i] 小于(大于a[i]的天数)=N-i 的时候,输出结果,并且跳出循环(这是为什么if里面取<=)
* 特殊情况:如果给定N天,并且每一天的骑行都大于N,则直接输出N
* 还是有一个测试点超时!!!
*/ public class basicalLevel1060EddingtonNumber { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = Integer.parseInt(in.nextLine()); //骑车的天数
int[] a = new int[N];
for (int i = 0; i < N; i++) {
a[i] = in.nextInt();
} Arrays.sort(a);
if (a[0] > N) {
System.out.println(N);
}
for (int i = a.length-1; i >= 0; i--) {
if (a[i] <= a.length-i) { //这里不能等于,应该小于等于(a.length-i)表示对应的天数
System.out.println(N-1-i);
break;
}
}
}
}
PAT——1060. 爱丁顿数的更多相关文章
- PAT 1060 爱丁顿数(25)(STL-multiset+思路)
1060 爱丁顿数(25 分) 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱 ...
- PAT 1060 爱丁顿数
https://pintia.cn/problem-sets/994805260223102976/problems/994805269312159744 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀 ...
- PAT 1060. 爱丁顿数(25)
英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”E,即满足有E天骑车超过E英里的最大整数E.据说爱丁顿自己的E等于87. 现给定某人N天的骑车距离,请你算出对应的爱 ...
- PAT 乙级 1060 爱丁顿数(25) C++版
1060. 爱丁顿数(25) 时间限制 250 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 英国天文学家爱丁顿很喜欢骑车.据说他 ...
- PAT(B) 1060 爱丁顿数(Java:21分)
题目链接:1060 爱丁顿数 (25 point(s)) 题目描述 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车 ...
- PTA(Basic Level)1060.爱丁顿数
英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱丁顿自己的 E 等于87. 现给 ...
- 1060 爱丁顿数 (25 分)C语言
英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱丁顿自己的 E 等于87. 现给 ...
- P1060 爱丁顿数
P1060 爱丁顿数 转跳点:
- 【PAT】B1060 爱丁顿数(25 分)
逻辑问题,对我来说还是挺有难度的,一开始想不通 我输入数据并以数据为下标,数据出现次数为内容存储 然后从后遍历计算所有大于当前下标的元素出现的次数 最后遍历一遍确定是否为爱丁顿数,如果大于当前已经找到 ...
随机推荐
- DLL文件
Dll文件的全称是Dynamic Link Library,中文意思为动态链接库,DLL文件是不可执行文件,其是一个包含由多个程序同时使用的代码和数据的库,动态链接提供了一种方法,使进程可以调用不属于 ...
- 深入分析ReentrantLock公平锁和非公平锁的区别 (转)
在ReentrantLock中包含了公平锁和非公平锁两种锁,通过查看源码可以看到这两种锁都是继承自Sync,而Sync又继承自AbstractQueuedSynchronizer,而AbstractQ ...
- csharp:datagridview enter Half Width and Full Width characters
/// <summary> /// 全角 /// </summary> /// <param name="unicodeString">< ...
- GDAL读取影像并插值
影像读取 并缩放 读取大影像某一部分,并缩放到指定大小,我们有时会用如下代码: #include "gdal.h" #include "gdal_priv.h" ...
- 如何从只会 C++ 语法的水平到达完成项目编写软件的水平?
原文:https://www.zhihu.com/question/29702729 学习 C++ 有一段时间了,但只是停留在熟悉语法阶段,在看 C++primer,不过感觉这本书比较深奥,不太适合, ...
- _tcsrchr
原文:http://www.cnblogs.com/diyunpeng/archive/2012/01/18/2325289.html _tcsrchr #include <afx.h> ...
- Mybatis学习第二天——mapper的动态代理
传统的Dao层开发通过接口与实现类的方式,Mybatis中通过mapper动态代理是需要定义接口. 1.传统Dao层封装 那么可以将公共资源提取出来,剩余的封装成方法来实现.下面是UserDaoImp ...
- jquery 之事件 方法
一.jquery事件 1 blur() 触发.或将函数绑定到指定元素的 blur 事件 2 change() 触发.或将函数绑定到指定元素的 change 事件 3 click() ...
- 转:Java Socket编程
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将 ...
- Excel 操作总结
1.excel 表格中换行:Alt+Enter; 2.Excel2003以上版本设置下拉菜单 DATA->Data Validation ->Data Validation -&g ...