什么是全排列?

所谓全排列就是把几个字符或数字(以下称为元素),进行全部排列

例如:字符串 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 蓝桥杯算法 全排列 背公式即可相关推荐

  1. JAVA 游览时间最长,[蓝桥杯][算法训练]景点游览-题解(Java代码)

    参考代码:import java.util.Scanner; public class Main3 { /** * @param args */ public static void main(Str ...

  2. JAVA 蓝桥杯 算法提高 阮小二买彩票

    JAVA 蓝桥杯 算法提高 阮小二买彩票 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电 ...

  3. JAVA 蓝桥杯 算法提高 色盲的民主

    JAVA 蓝桥杯 算法提高 色盲的民主 资源限制 时间限制:1.0s 内存限制:256.0MB  色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自 ...

  4. 蓝桥杯算法训练 礼物(java,个人想法,递归找临界点)

    蓝桥杯算法训练 礼物(java,个人想法,递归找临界点) 问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友. 在走出了怪物森林以后,JiaoSho ...

  5. 【蓝桥杯算法题】用java遍写税收计算

    [蓝桥杯算法题]用java遍写税收计算 题目:劳务报酬税收计算:输入 m ,输出税后收入.如果 m <=800,不扣税, 如果800< m <=4000.则 m 减去800后的金额扣 ...

  6. Java语言strcmp函数用法_蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)

    蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法) 首先这不是一个多难的题,但是网上的我没怎么找到有Java的代码,基本全都是c语言的,小编是个小白,如果有不对的地方请联系小编 问题描述 ...

  7. [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]

    题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...

  8. 【C/C++】蓝桥杯算法必刷题(一)目标ICPC铜/蓝桥杯国一

    目录 前言 该题单中第一类考点:输入输出 1001.这是一道签到题 1005.乘法表 1006.KiKi学程序设计基础 1007.疫情死亡率 该题单中第二类考点:思维题 1002.排列式 1018.开 ...

  9. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

最新文章

  1. python是人工智能最大骗局-Python与人工智能的关系原来是这样的...
  2. 提高Web性能的前端优化技巧总结
  3. c语言访问数据库 不用odbc,急问ODBC访问数据库问题
  4. 12C RAC for ASM添加磁盘步骤
  5. adf4351使用_ADF:将UI类别与动态表单一起使用
  6. 华为鸿蒙OS用户今年底或达2亿 将发布自研鸿蒙编程语言
  7. abb变频器dp适配器说明书_国产变频器与西门子和ABB的差距大吗?
  8. python float 精度_改变Float的精度并在Python中存储
  9. ubuntu ffmpeg 批量修改视频分辨率
  10. javascript无限弹窗_html恶搞之无限弹窗
  11. CAD常用字体库大全
  12. AD(PCB)知识总结
  13. 数据透视表练习表格_将高级电子表格导出与PHP结合起来以创建数据透视表
  14. 原创 | 最近程序员频繁被抓,如何避免面向监狱编程?!
  15. 梦三国解析服务器spl文件头失败怎么解决,梦三国手游野区BUFF点解析 野区BUFF怎么的打...
  16. ARM嵌入式学习——多进程/线程
  17. 转:我在淘宝这7年(四)
  18. 微信小程序获取当前系统时间以及判断周几
  19. 微服务框架springcloud(实用篇)【5】Elasticsearch 01
  20. 【MTK】 关于电信使用VoLTE异常

热门文章

  1. nRF52832低功耗问题不完全总结
  2. 电信主机计费系统_数据采集子模块
  3. 电子信息相关术语缩写
  4. 聊斋2聂小倩java华语版,九个版本的聂小倩,看全的没有几个,经典也不是王祖贤!...
  5. 硬件开源编程利器MyHDL简介
  6. 微信支付(一) - 企业付款到用户零钱
  7. 隐式转换、IF判断、逻辑【与、或、非】、三目运算的用法(基础)
  8. NTLK1 :简单文本分析
  9. 无痕埋点在Android中的实现
  10. 微信php签名验证_微信小程序API 用户数据的签名验证和加解密