贝壳2020——Java校招笔试题

算法题4道:


  1. 题目描述:
    给出n个正整数,要求找出相邻两个数字中差的绝对值最小的一对数字,如果有差的绝对值相同的,则输出最前面的一对数。(2<n<=100,正整数都在10^16范围内)
    输入:包含两行:第一行为n,第二行为n个用空格隔开的正整数。
    输出:包含一行:两个正整数,要求按原来的顺序输出。

  2. 求一个序列的最长递增子序列的长度

  3. 题目描述:
    举重大赛开始了,为了保证公平,要求比赛的双方体重较小值要大于等于较大值的90%,那么对于这N个人最多能进行多少场比赛呢,任意两人之间最多进行一场比赛。
    输入:第一行N,表示参赛人数(2<=N<=105),第二行N个正整数表示体重(0<体重<=108)
    输出: 一个数,表示最多能进行的比赛场数

  4. 题目描述:
    小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个请求的负荷值。
    输出:输出这个最小增加总和

posted @ 2019-08-11 18:22  paopaolx  阅读(1108)  评论(0编辑  收藏  举报