题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
java 代码
blablabla
import java.util.Scanner;
class Main{
//看时间复杂度 字母个数 10^5 然后个数 m《=100 最多10 ^7 我一开始没想到这个方法看yxc的 我自己想的是
// 算出初始的次序比如 1 2 3 5 4 是2 然后m = 3 那么是5 我们计算第五大 也是康托展开但是10^5的个数
// 无法计算阶层 就没什么思路没有仔细观察时间复杂度每次找nextpermuation 一共m次就好
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = sc.nextInt();
int[] array = new int[n];
for (int i = 0; i < n; i) array[i] = sc.nextInt();
for (int i = 0; i < count; i) nextPermuation(array, n);
for (int i = 0; i < n; i++) {
System.out.print(array[i]);
System.out.print(‘ ‘);
}
}
public static void nextPermuation(int[] array, int n) {
int i = n - 2;
while (i >= 0 && array[i] > array[i + 1]) i--;
int j = n - 1;
while (j > i && array[j] < array[i]) j--;
swap(i, j, array);
// 这里两个关键其中一个 需要把j(找到交换的数重新设置为末端, i需要++ 交换的数在i上已经确定 不用处理 交换(i + 1,n - 1)
i++;
j = n - 1;
while (i < j) swap(i++, j--, array);
}
public static void swap(int i, int j, int[] array) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
可以改下格式
请问改成什么样的格式
main函数那一段的代码没进markdown语句里面