后端岗位面试题更新 2026-08-05

有一堆怪物,每个怪物有一个血量 a1, a2, ..., an。每次让两个怪物打架,血多的赢,血量变成两者血量差 |x - y|,另一个死。如果血量相同,两个都死。重复打,直到只剩一个怪物(或全死)。求最后剩下的怪物的血量最小是多少?

字节跳动后端开发互联网/IT问题拆解技术原理

考察说明

考察数论中的最大公约数(GCD)与博弈结合的最小化问题

回答思路

  1. 识别问题本质是求所有血量的最大公约数(或0)
  2. 理解操作等价于对血量做辗转相减,不改变全局GCD
  3. 分析全死条件(所有血量相同且成对消灭)与剩一个的情况
  4. 给出构造方案:通过两两合并逐步将血量约化为GCD,证明可行性
  5. 考虑边界:n=1、全相等、含0血量等特殊情况
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。