8.14 4399Java后端开发笔试题
简答题
mysql 有一张表 tbllog_pay 记录了玩家在游戏中的每笔充值记录,字段为 订单id(order_id,主键唯一),玩家id(role_id)、这笔订单的充值金额(pay_money)、充值时间(pay_time,unix时间戳,普通索引)。请完成下列需求:统计累充大于1w的玩家名单,按充值金额从高到底展示前10名的玩家id、累充金额、最后充值时间
请简单描述一下什么是oauth2.0,以及使用oauth2.0的优势
实现WEB流量的负载均衡有哪些方式,请分别描述其工作原理和优缺点。 请列出4种
算法题
一、
4399 出了一款小游戏 《劫富济贫》 ,游戏中,有多个富商基地,一个侠盗需要夜行从每个富商基地偷到最多的珠宝钻石,并且保证不被安保发现;已知:(1)基地里面的房间是一整排到底的,即仅有一排 n 间房子(2)侠盗已经从 “百晓生” 那里得知了每个房子里面的珠宝数量(3)如果相邻的两间房间同一个晚上被盗窃,侠盗就会被安保发现给定您一个代表每个房屋存放珠宝的非负整数数据,请您编写程序,计算出侠盗一晚能够在不被安保发现的情 况下盗取的最大珠宝数量!
输入示例: 1,2,5,2,1,3,1
输出示例: 9
二、
有n个硬币,每次最多拿走一个或者两个,你有多少种不同的方法拿完全部的硬币?(要求用动态规范解题)输入描述:硬币的个数n (1<=n<=50)输出描述:拿完全部硬币的方法数
输入样例:2
输出样例:2
输入样例:5
输出样例:8
三、
4399 的娱乐小组为了公司年会准备了一款亲友互动微信小游戏 《你追我赶》,游戏规则如下:
- 系统会随机生成一副部落数为 N 的森林地图,每个部落会有不同的风土人情,设部落编号为 1~N
- 每个人一次只能邀请一位同事参与 PK
- 游戏开始前两位参与者需要选择 N 条小路,保证任意两个部落之间都可以通过小路互相到达,且不存在两条连接部落相同的小路
- 整个游戏场景可以看成一个无向连通图,设为 edg ,部落和部落之间的小路可以通过 [a, b] 标识
- 游戏开始后,两位参与者会随机分配到不同部落,设为 tribeA 和 tribeB ,并且双方可以竞选当⻆逐者或隐匿者
- ⻆逐者 需要再最短的时间内追到 隐匿者 , 而 隐匿者 的目标是尽可能延长被追到的时间
- 每个回合,⻆逐者 先行动,而 隐匿者 需要观察 ⻆逐者 当前的位置再行动
- ⻆逐者 和 隐匿者 可以在每一个回合选择 移动⾄相邻部落 或者 留在原地 ,如果 ⻆逐者 追上 隐匿者(即两人同时出现在同一个部落),则游戏立刻结束!
- 游戏胜利者以及耗时最优者可以参与到最后的 “疯狂大奖” 环节 请您编写程序,计算出 ⻆逐者 要追上 隐匿者 最少需要多少回合,如果无法追上,请返回 -1 (请忽略人为因素,假设双方肯定能采取最优移动策略来玩游戏)。 示例: 输入: edg = [[1,2],[2,3],[3,4],[4,1],[2,5],[5,6]], tribeA = 3, tribeB = 5 输出: 3