java实现第九届蓝桥杯全排列
JAVA 实现 蓝桥 排列 第九届
2023-09-14 08:58:10 时间
全排列
对于某个串,比如:“1234”,求它的所有全排列。
并且要求这些全排列一定要按照字母的升序排列。
对于“1234”,应该输出(一共4!=24行):
1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321
下面是实现程序,请仔细分析程序逻辑,并填写划线部分缺少的代码。
// 轮换前k个,再递归处理
import java.util.*;
public class A
{
static void permu(char[] data, int cur){
if(cur==data.length-1){
System.out.println(new String(data));
return;
}
for(int i=cur; i<data.length; i++){
char tmp = data[i];
for(int j=i-1; j>=cur; j--) data[j+1] = data[j];
data[cur] = tmp;
permu(data, cur+1);
tmp = data[cur];
__________________________________________ ;
data[i] = tmp;
}
}
static void permu(String x){
permu(x.toCharArray(),0);
}
public static void main(String[] args){
permu("1234");
}
}
// 根据已有的代码,那地方就是要回溯;根据for循环开始的交换方式还有上下两句代码,就可以得到答案了。
for(int j = cur; j < i; j++) data[j] = data[j + 1];
相关文章
- java对象组声明_如何在Java中声明对象数组?
- java redis锁_Java中Redis锁的实现[通俗易懂]
- native2ascii java_Native2Ascii和Ascii2Native的Java实现
- java url加密_Java实现url加密处理的方法示例
- Java截取字符串方法_java通过split截取字符串
- Java 连接 MySQL 数据库简易实现(java连mysql)
- LRU算法的Java实现详解编程语言
- Java监控MySQL性能:实现数据库运行优化(java监控mysql)
- 使用Redis实现Java对象的过期管理(redisjava过期)
- 处理Java实现Redis键值对过期处理(redisjava过期)
- 处理Java中使用Redis实现高效的过期处理(redisjava过期)
- 机制使用Redis Java实现自动过期机制(redisjava过期)
- Java与MySQL编程实现数据查询、存储、更新与删除!(javamysql编程)
- 使用Java远程控制Linux 实现简单、高效的服务器管理(java控制linux)
- Java编程实现MySQL表备份(java备份mysql表)
- Java调用Linux库实现跨系统功能(java调用linux库)
- 实现高并发:Java利用Redis秒杀成功(java秒杀redis)
- Java实现Linux:跨平台解决方案(java 实现linux)
- Java程序在Linux系统中实现命令操作(java运行linux命令)
- Java程序调用Linux系统命令实现更多功能(java调用linux命令)
- Linux测试搭配Java快速实现稳定性验证(linux测试java)
- 从OC4J到Oracle实现Java应用无缝迁移(oc4j oracle)
- 实现Java认证让你离Oracle更近一步(java认证oracle)
- Java模拟Oracle实现稳定数据库性能(java模仿oracle)
- Java导入Oracle 实现快速数据传输(java导入oracle)
- Oracle中实现Java程序设计的极限可能性(oracle中的java)
- Java实现Redis计数器功能(redis计数 java)
- Java实现解出世界最难九宫格问题