适用于不同数字的全排列,其实也适用于有重复数字的全排列,只不过的出来的结果有重复,需手动删减掉重复的组合。

 package testFullPermutation;

 import java.util.ArrayList;
import java.util.List; public class testFullPermutation
{
ArrayList<ArrayList<Integer>> fullPermutation=new ArrayList<ArrayList<Integer>>();
public ArrayList<ArrayList<Integer>> allSort(int[] buf)
{
int end=buf.length;
if (end==0)
{
return null;
}
else
{
fullPermutation=perm(buf,0,end-1);
return fullPermutation;
}
} public ArrayList<ArrayList<Integer>> perm(int[] buf,int start,int end)
{
if (start==end)//
{
ArrayList<Integer> oneKind=new ArrayList<Integer>();
for (int i=0;i<buf.length;i++)//递归终止条件
{
oneKind.add(buf[i]);
}
fullPermutation.add(oneKind); }
else
{
for (int i=start;i<=end;i++)
{
int temp=buf[start];
buf[start]=buf[i];
buf[i]=temp;
perm(buf,start+1,end);
//还原成交换之前的组合
temp=buf[start];
buf[start]=buf[i];
buf[i]=temp;
} }
return fullPermutation;
} }

最新文章

  1. nodejs复习02
  2. 有关attribute和property,以及各自对select中option的影响
  3. $(document).ready()方法和window.onload区别
  4. 宫格布局实例(注意jquery的版本号要统一)2
  5. C#分布式缓存一:Couchbase的安装与简单使用
  6. 【php学习】图片操作
  7. 【leetcode❤python】121. Best Time to Buy and Sell Stock
  8. 购买SSD固态硬盘须当心,你知道什么是SLC、 MLC、TLC闪存芯片颗粒吗?
  9. [JIT_APP]Java基础知识总结
  10. &lt;PHP&gt;字符串处理代码
  11. 基于ATmgea8单片机设计的加热控制系统(转)
  12. http范围请求
  13. CSS hover
  14. NHibernate之旅(21):探索对象状态
  15. Rest Client插件简单介绍
  16. axios ajax fetch 区别
  17. Jenkins + Ant + Jmeter 对项目的接口进行CI持续集成的配置 外加发送邮件 sendEmail
  18. 【xsy1156】 树套树(tree) 倍增
  19. 单页WEB应用(三),Chat聊天模块
  20. Yii2 yii\helpers\ArrayHelper

热门文章

  1. git 添加文件
  2. Nuget如何管理本地的包
  3. Linux下Tomcat的启动、关闭、杀死进程
  4. Caffe学习系列(13):数据可视化环境(python接口)配置
  5. listview向下滑动过程中背景色变成黑色和一些奇怪问题
  6. 解决vs2013使用Git推送到远程仓库报错的问题
  7. Slider 滚动条 Pagination分页插件 JS Ajax 数据范围筛选 加载 翻页 笔记
  8. java中的自增问题
  9. html的转码玉反转码
  10. 从零开始写redis客户端(deerlet-redis-client)之路——第一个纠结很久的问题,restore引发的血案