NC50919. 递归实现排列型枚举
描述
输入描述
一个整数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)