某公司实习笔试题

某公司实习笔试题:
场景题:已知双方每回合的伤害,要想赢得比赛,需要我方比对方伤害高。可以氪金,每冲一块钱,则每回合的伤害都加一,(对方不会氪金)
游戏开始后,可能在1~n回合的任意回合结束游戏,最少冲多少钱才能赢得游戏(伤害相等不算赢)
三行输入,第一行是回合数,第二行是我方每回合的伤害,第三行是对手每回合的伤害
示例:
3  
1 2 3
2 4 2

3
1 1 3
2 4 2



有没有大佬给讲下思路。我的思路就是:两个数组相减,取最大值,最大值也就是要冲的钱。如果最大值是第一个,那么最大值再加1。我感觉没有问题啊,但是只通过18%
#笔试##实习##笔试题目##笔经#
全部评论
同webank,其实不难 Scanner sc = new Scanner(System.in); int turn = sc.nextInt(); long add = 0, x = 0, y = 0; long[] ax = new long[turn]; for (int i = 0; i < turn; i++) {     ax[i] = sc.nextLong(); } for (int i = 0; i < turn; i++) {     long bs = sc.nextLong();     x += add + ax[i];     y += bs;     if (x <= y) {         long diff = y - x + 1;         long ac = (long) Math.ceil(diff / (i + 1.0));         x += ac * (i + 1);         add += ac;     } } sc.close(); System.out.println(add);
1 回复 分享
发布于 2022-04-21 09:00
牛啊大哥
点赞 回复 分享
发布于 2022-04-21 20:30

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务