首页 > 试题广场 >

全排列

[编程题]全排列
  • 热度指数:2004 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
{\hspace{15pt}}给定一个整数 n,请按 字典序 输出数字 1\sim n 的所有排列。

输入描述:
{\hspace{15pt}}一行一个整数 n\left(1\leqq n\leqq 9\right)


输出描述:
{\hspace{15pt}}按字典序输出所有排列,每行输出 n 个整数,数字之间用单个空格分隔。
示例1

输入

3

输出

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

备注:

头像 Ldh1315109
发表于 2025-11-07 15:59:46
print('\n'.join(' '.join(map(str, p)) for p in permutations([i for i in range(1, II() + 1)])))
头像 ikun_ac
发表于 2025-08-08 22:28:48
题目链接 全排列 题目描述 给定一个整数 ,请按字典序输出数字 的所有排列。 输入: 一行一个整数 输出: 按字典序输出所有排列。每行输出 个整数,数字之间用单个空格分隔 解题思路 按字典序生成全排列有两种常见方法: 使用内置/标准库的“下一个排列”算法(next_permutati 展开全文
头像 1900201910072158499
发表于 2025-08-22 19:55:30
import java.util.Scanner; import java.util.ArrayList; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { // 递归生成全排列的方法 // listA: 当前已排列 展开全文
头像 冷艳的西红柿刷牛客
发表于 2025-10-24 09:23:00
#include <iostream> using namespace std; int n; int vis[10]{0}; //c++引用传递需要显示指定为int *a,使用reference需要显示指定数组大小,所以可以使用指针方便一些 //相对于Java,可以使用&i 展开全文
头像 蒟蒻一个
发表于 2025-12-11 00:08:59
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () = 展开全文
头像 N_zip
发表于 2025-07-16 10:06:00
#include<bits/stdc++.h> using namespace std; int n; int a[10]; bool vis[10]; void dfs(int dep) { if(dep==n+1) { for(int i=1;i< 展开全文
头像 niuke9999
发表于 2025-12-05 19:53:01
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >& 展开全文
头像 牛客297730300号
发表于 2025-08-15 14:49:53
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () = 展开全文
头像 学习小生
发表于 2025-09-06 18:07:17
from itertools import permutations n = int(input()) nums = list(range(1, n + 1)) all_permutations = permutations(nums) for perm in all_permutations: 展开全文
头像 小贝壳的铁粉
发表于 2025-11-13 13:34:31
package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) if n <= 0 { fmt.Println("n 必须是正整数") return } 展开全文