c++关于排列组合的一个步骤的疑问

2024-11-29 06:32:35
推荐回答(1个)
回答(1):

这个是一个深度优先搜索,对于k这个位置上的数,我们总是把k到M的数都和k上的数交换一次,然后递归k+1深度

如果把k之前的数当作固定的,k和k之后的数当作是未分配的,那么操作就相当于把未分配的数轮流放到k的位置,并固定下来,然后进行下一个位置的搜索。返回以后需要复原数列,保证不会重复使用同一个数字

这个你要理解必须要学习深度优先搜索。