java算法排列式_JAVA 蓝桥杯算法 全排列 背公式即可
什么是全排列?
所谓全排列就是把几个字符或数字(以下称为元素),进行全部排列
例如:字符串 abc
那么就可以这样排abc
acb
bac
bca
cab
cba
把全部元素能用到的排列方式进行全部排列一遍
什么时候用全排列?
有的题目会要求你全部排出几种情况?把所有排列状况按升序输出.....
但有的时候不用
当某一个数非常大并且只输出此类有几种排列方法,有几种方式,几种走法,只输出结果的这种用动态规划
全排列怎么写?public static void f(int x){
for(int i = x; i < arrs.length;i++){
char y = arrs[x];
arrs[x] = arrs[i];
arrs[i] = y;
f(x+1);
y = arrs[x];
arrs[x] = arrs[i];
arrs[i] = y;
}
}
只要背会,大部分全排列题都能做!
能不能来个例题?
题目:
对于某个串,比如:“1234”,求它的所有全排列。
并且要求这些全排列一定要按照字母的升序排列。
解题:package com.cxyax.lianxi2;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
/**
* 标题:全排列
对于某个串,比如:“1234”,求它的所有全排列。
并且要求这些全排列一定要按照字母的升序排列。
* @author ah xin
*
*/
public class MainQ2 {
static Set set = new TreeSet<>();
static char[] arrs;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
char[] arr = str.toCharArray();
arrs = arr;
f(0);
for(String s : set){
System.out.println(s);
}
System.out.println(set.size());
}
public static void f(int x){
String str = "";
for(int i = 0; i < arrs.length;i++){
str += arrs[i]+"";
}
set.add(str);
for(int i = x; i < arrs.length;i++){
char y = arrs[x];
arrs[x] = arrs[i];
arrs[i] = y;
f(x+1);
y = arrs[x];
arrs[x] = arrs[i];
arrs[i] = y;
}
}
}
站长下课了,不写了,你们自己琢磨琢磨,有什么疑问可以评论....
以上是《JAVA 蓝桥杯算法 全排列 背公式即可》的全部内容,
感谢您对程序员阿鑫博客的支持!
java算法排列式_JAVA 蓝桥杯算法 全排列 背公式即可相关推荐
- JAVA 游览时间最长,[蓝桥杯][算法训练]景点游览-题解(Java代码)
参考代码:import java.util.Scanner; public class Main3 { /** * @param args */ public static void main(Str ...
- JAVA 蓝桥杯 算法提高 阮小二买彩票
JAVA 蓝桥杯 算法提高 阮小二买彩票 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电 ...
- JAVA 蓝桥杯 算法提高 色盲的民主
JAVA 蓝桥杯 算法提高 色盲的民主 资源限制 时间限制:1.0s 内存限制:256.0MB 色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自 ...
- 蓝桥杯算法训练 礼物(java,个人想法,递归找临界点)
蓝桥杯算法训练 礼物(java,个人想法,递归找临界点) 问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友. 在走出了怪物森林以后,JiaoSho ...
- 【蓝桥杯算法题】用java遍写税收计算
[蓝桥杯算法题]用java遍写税收计算 题目:劳务报酬税收计算:输入 m ,输出税后收入.如果 m <=800,不扣税, 如果800< m <=4000.则 m 减去800后的金额扣 ...
- Java语言strcmp函数用法_蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)
蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法) 首先这不是一个多难的题,但是网上的我没怎么找到有Java的代码,基本全都是c语言的,小编是个小白,如果有不对的地方请联系小编 问题描述 ...
- [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]
题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...
- 【C/C++】蓝桥杯算法必刷题(一)目标ICPC铜/蓝桥杯国一
目录 前言 该题单中第一类考点:输入输出 1001.这是一道签到题 1005.乘法表 1006.KiKi学程序设计基础 1007.疫情死亡率 该题单中第二类考点:思维题 1002.排列式 1018.开 ...
- 蓝桥杯——算法训练——数字三角形
蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...
最新文章
- python是人工智能最大骗局-Python与人工智能的关系原来是这样的...
- 提高Web性能的前端优化技巧总结
- c语言访问数据库 不用odbc,急问ODBC访问数据库问题
- 12C RAC for ASM添加磁盘步骤
- adf4351使用_ADF:将UI类别与动态表单一起使用
- 华为鸿蒙OS用户今年底或达2亿 将发布自研鸿蒙编程语言
- abb变频器dp适配器说明书_国产变频器与西门子和ABB的差距大吗?
- python float 精度_改变Float的精度并在Python中存储
- ubuntu ffmpeg 批量修改视频分辨率
- javascript无限弹窗_html恶搞之无限弹窗
- CAD常用字体库大全
- AD(PCB)知识总结
- 数据透视表练习表格_将高级电子表格导出与PHP结合起来以创建数据透视表
- 原创 | 最近程序员频繁被抓,如何避免面向监狱编程?!
- 梦三国解析服务器spl文件头失败怎么解决,梦三国手游野区BUFF点解析 野区BUFF怎么的打...
- ARM嵌入式学习——多进程/线程
- 转:我在淘宝这7年(四)
- 微信小程序获取当前系统时间以及判断周几
- 微服务框架springcloud(实用篇)【5】Elasticsearch 01
- 【MTK】 关于电信使用VoLTE异常