补充:刚刚留意到官方题解提到了这种方式,不过我这里描述稍微详细一点点。 看大家都是用 8 循环,其实还有一种基于对 5 取余的思路: 先考虑 nnn 为 5 的倍数的情况,例如对于 20,我们拆成五组: 1, 6, 11, 16 2, 7, 12, 17 3, 8, 13, 18 4, 9, 14, 19 5, 10, 15, 20 排列内部相减得到 5,只需要排列连接处也能满足题意即可。 尝试把这 5 个排列组合,使之满足题意,变成: [5, 10, 15, 20], [17, 12, 7, 2], [1, 6, 11, 16], [19, 14, 9, 4], [3, 8, 13, ...