=====
在一个整数序列a 1, a 2, …, a n中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。
给定一个整数序列,请找出这个整数序列的中间数的值。
输入格式
输入的第一行包含了一个整数n,表示整数序列中数的个数。
第二行包含n个正整数,依次表示a 1, a 2, …, a n。
输出格式
如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。
样例输入
6
2 6 5 6 3 5
样例输出
5
样例说明
比5小的数有2个,比5大的数也有2个。
样例输入
4
3 4 6 7
样例输出
-1
样例说明
在序列中的4个数都不满足中间数的定义。
样例输入
5
3 4 6 6 7
样例输出
-1
样例说明
在序列中的5个数都不满足中间数的定义。
评测用例规模与约定
对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ a i ≤ 1000。
解题思路:
=====
将一组数组转化为类似“柱状图”一样的数据,用每个数当数组下标,保存每个数出现的次数,同时记录最大最小值
for循环下标 i 从最小值遍历到最大值, 对于每个下标(下标就是数字结果),如果满足
小于它的下标的数的个数 × 2 + 出现它的个数 = 总个数,那么这个数就是“中间数”。
需要注意特别判断,全都为一个数时,这个数即为“中间数”。
解题代码:
=====
#include<stdio.h>
#include
#include<math.h>
总结:心得体会
既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。
学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。
面试大厂,最重要的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。
最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。
大厂Java架构核心笔记(适合中高级程序员阅读):
![](https://upload-images.jianshu.io/upload_images/22932333-129bbd6ccc670c79?imageMogr2/auto-orient/st
必看视频!获取2024年最新Java开发全套学习资料 备注Java
rip%7CimageView2/2/w/1240)