当前位置: 首页 > news >正文

Java的全排列模板

c++有全排列函数,我们Java没有,所以我们只能自己手写了。

模板一:(不去重)

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class liyunpeng {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int[] a = {1, 2, 3, 4};sum(a,0,a.length);}
public static void sum(int[] a, int start, int end ) {int b, c, d;if (start == end-1) {for (b = 0; b < end; b++) {System.out.print(a[b]);}System.out.println();return;}for (c = start; c < end; c++) {swap(a, c, start);sum( a, start +1, end);swap(a,c,start);}}
public static void swap ( int[] c, int a, int b){int d = c[a];c[a] = c[b];c[b] = d;}}

模板二:使用hashset来帮助我们去重

import java.util.*;public class liyunpeng {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int[] a = {1, 9, 9, 4};sum(a,0,a.length);System.out.println(s.size());int f;int[] b = s.stream().mapToInt(Integer::intValue).toArray();for(int e=0;e<b.length;e++){for(f=e+1;f<b.length;f++){if(b[e]>b[f]){swap(b,e,f);}}}for(f=0;f<b.length;f++){System.out.println(b[f]);}}
public static HashSet<Integer> s=new HashSet<>();public static void sum(int[] a, int start, int end) {int b, c, d;int[] o=new int[50000];if (start == end-1) {int g=jisuan(a);if(sushu(g)==1){s.add(g);}return;}for (c = start; c < end; c++) {swap(a, c, start);sum( a, start +1, end);swap(a,c,start);}}
public static void swap ( int[] c, int a, int b){int d = c[a];c[a] = c[b];c[b] = d;}
public static int jisuan(int[] a){int b;b=a[0]*1000+a[1]*100+a[2]*10+a[3];return b;}
public static int sushu(int a){if(a<2||a==4)return 0;if(a==2||a==3)return 1;if(a%6!=5&&a%6!=1)return 0;for(int b=5;b*b<=a;b=b+6){if(a%b==0||a%(b+2)==0)return 0;}return 1;}}
*/

http://www.lryc.cn/news/145294.html

相关文章:

  • 读书笔记——《万物有灵》
  • 面试现场表现:展示你的编程能力和沟通技巧
  • 34亿的mysql表如何优雅的扩字段长度兵并归档重建
  • C#_进程单例模式.秒懂Mutex
  • AcWing 5050. 排序 (每日一题)
  • 【TypeScript】proxy 和 Reflect
  • STM32f103入门(5)定时器中断
  • Mybatis查询数据
  • 【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了
  • 如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!
  • 立创EDA专业版的原理图上器件有一个虚线框
  • JUC并发编程--------基础篇
  • 秒懂算法2
  • 隐秘的角落:Java连接Oracle提示Connection timed out
  • 基于微信小程序的餐厅预订系统的设计与实现(论文+源码)_kaic
  • 科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知
  • 深入了解Webpack:特性、特点和结合JS混淆加密的实例
  • 2023-08-23力扣每日一题
  • 分发饼干【贪心算法】
  • 为什么网络互联地址设置为30位地址
  • 青少年棒球锦标赛发展·棒球1号位
  • Unity实现UI图片面板滚动播放效果第二弹
  • Redis的基本操作
  • 省级智慧农业大数据平台项目规划建设方案[195页Word]
  • php图片批量压缩并同时保持清晰度
  • 243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点
  • NOI2015D. 荷马史诗
  • 并法编程(集合类不安全)03详细讲解未补充
  • 软考:中级软件设计师:大数据
  • 【持续更新中】QAGroup1