我得到 N 个数字,并为他们应用 M 条关于他们的订单的规则。规则以一对索引表示,每一对 (A, B) 都告诉索引 A 的数字(第 A 号)必须在第 B 号之后 - 它不必在他旁边.
Ex: N = 4
1 2 3 4
M = 2
3 2
3 1
Output: 1234, 4213, 4123, 2134, 2143, 2413, 1423 ...Maybe there are even more:)
该算法应该给我所有不违反规则的可用排列,就像在示例中一样 - 3 必须始终在 2 和 1 之后。
我尝试了暴力破解,但它没有用(虽然暴力破解应该在这里工作,N 在范围(1,8)内。)
有任何想法吗 ?