vivo 2020届校招在线编程笔试B卷

时长:120分钟 总分:100分

335浏览 0人已完成答题

题型介绍
题型 填空题
数量 3
1.
运矿石
问题详情

小v最近在玩一款挖矿的游戏,该游戏介绍如下:
1、每次可以挖到多个矿石,每个矿石的重量都不一样,挖矿结束后需要通过一款平衡矿车运送下山;
2、平衡矿车有左右2个车厢,中间只有1个车轮沿着导轨滑到山下,且矿车只有在2个车厢重量完全相等且矿石数量相差不超过1个的情况下才能成功运送矿石,否则在转弯时可能出现侧翻。
假设小v挖到了n(n&lt100)个矿石,每个矿石重量不超过100,为了确保一次性将n个矿石都运送出去,一旦矿车的车厢重量不一样就需要购买配重砝码。请问小v每次最少需要购买多少重量的砝码呢? (假设车厢足够放下这些矿石和砝码,砝码重量任选)

输入描述: 输入n个正整数表示每个矿石的重量输入样例: 3 7 4 11 8 10 输出描述: 输出一个正整数表示最少需要购买的砝码重量输出样例 1
2.
报数
问题详情

今年7月份vivo迎来了新入职的大学生,现在需要为每个新同事分配一个工号。人力资源部同事小v设计了一个方法为每个人进行排序并分配最终的工号,具体规则是:
将N(N<10000)个人排成一排,从第1个人开始报数;如果报数是M的倍数就出列,报到队尾后则回到队头继续报,直到所有人都出列;
最后按照出列顺序为每个人依次分配工号。请你使用自己擅长的编程语言帮助小v实现此方法。

输入描述: 输入2个正整数,空格分隔,第一个代表人数N,第二个代表M:输入样例: 6 3 输出描述: 输出一个int数组,每个数据表示原来在队列中的位置用空格隔开,表示出列顺序:输出样例 3 6 4 2 5 1
3.
跳盒子
问题详情

小v在公司负责游戏运营,今天收到一款申请新上架的游戏“跳一跳”,为了确保提供给广大玩家朋友们的游戏都是高品质的,按照运营流程小v必须对新游戏进行全方位了解体验和评估。这款游戏的规则如下:
    有n个盒子排成了一行,每个盒子上面有一个数字a[i],表示在该盒子上的人最多能向右移动a[i]个盒子(比如当前所在盒子上的数字是3,则表示可以一次向右前进1个盒子,2个盒子或者3个盒子)。
现在小v从左边第一个盒子上开始体验游戏,请问最少需要移动几次能到最后一个盒子上?
输入描述: 输入 :2 2 3 0 4

表示现在有5个盒子,上面的数字分别是2, 2, 3, 0, 4。输入样例: 2 2 3 0 4 输出描述: 输出:2

小v有两种跳法:

跳法1:盒子1 -> 盒子2 -> 盒子3 -> 盒子5,共3下

跳法2:盒子1 -> 盒子3 -> 盒子5,共2下

跳法2的步骤数最少,所以输出最少步数:2。输出样例 2