米哈游 秋招 笔试
1.算法:有两个玩家轮流从一堆石子中取石子,每次操作必须选择一堆石子数量大于1的石子堆,并且选择一个能整除该石子堆石子数量的正整数作为除数。然后将这堆石子分成若干堆,每堆的石子数量等于选择的除数。无法进行操作的玩家输掉游戏。需要判断给定初始石子堆的情况下,先手玩家是否能够获胜。
思路:计算每堆石子中因子2的个数,将所有堆的因子2个数进行异或操作。若异或结果不为零,则先手必胜;否则先手必败。这个结论是通过分析游戏规律得出的,类似于Nim游戏的策略。
2.算法:给定一个字符串和一系列可用的前缀旋转操作。每个操作允许将字符串的前缀(从开头到某个位置)进行旋转,即将前缀部分向左或向右循环移动若干位置。目标是使整个字符串达到特定的偏移状态,即整个字符串向左移动y位后的状态。需要找出达成这个目标状态所需的最小操作次数。
思路:将每个可能的字符串偏移状态视为图中的一个节点,使用BFS遍历所有状态。每次操作对应状态间的转移,记录到达每个状态的最小操作次数。当找到目标偏移状态时,返回对应的操作步数。
#秋招的破防瞬间##秋招笔面试记录##秋招笔试记录##秋招投递记录##米哈游#
思路:计算每堆石子中因子2的个数,将所有堆的因子2个数进行异或操作。若异或结果不为零,则先手必胜;否则先手必败。这个结论是通过分析游戏规律得出的,类似于Nim游戏的策略。
2.算法:给定一个字符串和一系列可用的前缀旋转操作。每个操作允许将字符串的前缀(从开头到某个位置)进行旋转,即将前缀部分向左或向右循环移动若干位置。目标是使整个字符串达到特定的偏移状态,即整个字符串向左移动y位后的状态。需要找出达成这个目标状态所需的最小操作次数。
思路:将每个可能的字符串偏移状态视为图中的一个节点,使用BFS遍历所有状态。每次操作对应状态间的转移,记录到达每个状态的最小操作次数。当找到目标偏移状态时,返回对应的操作步数。
#秋招的破防瞬间##秋招笔面试记录##秋招笔试记录##秋招投递记录##米哈游#
全部评论
mark
什么岗?
相关推荐
08-30 17:05
门头沟学院 测试工程师 点赞 评论 收藏
分享
08-30 17:25
门头沟学院 测试工程师 点赞 评论 收藏
分享

点赞 评论 收藏
分享