1.3.1 全排列问题 Description 输出自然数 1 1 到 � n 所有不重复的排列,即 � n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 Input 第一行为一个整数 � n Output 由 1 1至 � n组成的所有不重复的数字序列,每行一个序列。 每个数字之间由空格隔开
时间: 2024-01-09 17:10:43 浏览: 181
这是一个典型的全排列问题,可以使用回溯算法来解决。以下是Python代码实现:
```python
def permute(nums):
res = []
used = [False] * len(nums)
def backtrack(path):
if len(path) == len(nums):
res.append(path[:])
return
for i in range(len(nums)):
if used[i]:
continue
used[i] = True
path.append(nums[i])
backtrack(path)
used[i] = False
path.pop()
backtrack([])
return res
n = int(input())
nums = [i + 1 for i in range(n)]
res = permute(nums)
for r in res:
print(' '.join(map(str, r)))
```
输入一个整数n,生成1到n的数字序列的所有全排列,并输出每个序列。
阅读全文