贝壳2020——Java校招笔试题
算法题4道:
-
题目描述:
给出n个正整数,要求找出相邻两个数字中差的绝对值最小的一对数字,如果有差的绝对值相同的,则输出最前面的一对数。(2<n<=100,正整数都在10^16范围内)
输入:包含两行:第一行为n,第二行为n个用空格隔开的正整数。
输出:包含一行:两个正整数,要求按原来的顺序输出。 -
求一个序列的最长递增子序列的长度
-
题目描述:
举重大赛开始了,为了保证公平,要求比赛的双方体重较小值要大于等于较大值的90%,那么对于这N个人最多能进行多少场比赛呢,任意两人之间最多进行一场比赛。
输入:第一行N,表示参赛人数(2<=N<=105),第二行N个正整数表示体重(0<体重<=108)
输出: 一个数,表示最多能进行的比赛场数 -
题目描述:
小C在做一种特殊的服务器负载测试,对于一个请求队列中的请求,每一个请求都有一个负荷值,为了保证服务器稳定,请求队列中的请求负荷必须按照先递增后递减的规律(仅递增,仅递减也可以),比如[ 1,2,8,4,3 ],[ 1,3,5 ]和[ 10 ]这些是满足规律的,还有一些不满足的,比如[ 1,2,2,1 ],[ 2,1,2 ]和[ 10,10 ]。现在给你一个请求队列,你可以对请求的负荷值进行增加,要求你调整队列中请求的负荷值,使数组满足条件。最后输出使队列满足条件最小的增加总和。
输入:输入有两行,第一行是N (1≤n≤5000) ,代表请求队列中的请求数量。第二行有N个数字 a1,a2…an (1≤ai≤10^9)。Ai是第i个请求的负荷值。
输出:输出这个最小增加总和