列表

详情


NC50919. 递归实现排列型枚举

描述

这 n个整数排成一行后随机打乱顺序,输出所有可能的次序。

输入描述

一个整数n。

输出描述

按照从小到大的顺序输出所有方案,每行1个。 首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。

示例1

输入:

3

输出:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++ 11.0.1) 解法, 执行用时: 819ms, 内存消耗: 7248K, 提交时间: 2023-01-30 15:25:20

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[9]={1,2,3,4,5,6,7,8,9};
	do{
		for(int i=0;i<n;i++)
		{
			cout<<a[i]<<" ";
		}cout<<endl;
	}while(next_permutation(a,a+n));
}

Python3 解法, 执行用时: 962ms, 内存消耗: 11300K, 提交时间: 2022-01-13 10:46:47

from itertools import permutations
n=int(input())
for i in permutations(range(1,1+n),n):
    print(*i)

上一题