java全排列 去重_java 实现全排列

public List> permute(int[] nums) {

List> res = new ArrayList<>();

f1(0, nums, res);

return res;

}

private void f1(int i, final int[] nums, List> res) {

if (i == nums.length) {

//记录当前解

List one = new ArrayList<>();

for (int num : nums) {

one.add(num);

}

res.add(one);

} else {

/*当前元素和它后面的每个元素交换,

*交换后进入下一个元素的交换,返回后再换回来

*/

for (int j = i; j < nums.length; j++) {

if (i != j) {

//用异或操作交换,省去中间变量

nums[i] ^= nums[j];

nums[j] ^= nums[i];

nums[i] ^= nums[j];

}

f1(i + 1, nums, res);

if (i != j) {

nums[i] ^= nums[j];

nums[j] ^= nums[i];

nums[i] ^= nums[j];

}

}

}

}

java实现全排列

前天上午的面试遇到了一个用java实现一串数字的全排列的题,想来想去用递归最方便,可是没有在规定的时间内完成555,今天上午有空便继续写,以下是完成后的代码: import java.util.Arr ...

java字典序全排列

import java.util.Arrays; /** *字典序全排列 *字符串的全排列 *比如单词"too" 它的全排列是"oot","oto&q ...

HDOJ-ACM1016&lpar;JAVA&rpar; 字典序全排列,并剪枝

转载声明:原文转自http://www.cnblogs.com/xiezie/p/5576273.html 题意: 一个环是用图中所示的n个圆组成的.把自然数1.2.…….n分别放入每个圆中,并在相邻 ...

java实现全排列问题

1.问题描述: 一组字符串的全排列,按照全排列的顺序输出,并且每行结尾无空格. 2.输入: 输入一个字符串 3.输入示例: 请输入全排列的字符串: abc 4.输出示例: a b c a c b b ...

JAVA求解全排列

一,问题描述 给定一个字符串,求出该字符串的全排列. 比如:"abc"的全排列是:abc.acb.bac.bca.cab.cba 二,实现思路 采用递归的方式求解.每次先选定一个字 ...

java 字符串全排列 和 去重

用递归进行排序 , 用TreeSet 去重. public class test { public static void main(String []args){ String str = &quo ...

42-2017蓝桥杯b java

1.购物单    小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞.    这不,XX大促销又来了!老板夫人开出了长长的购物单,都 ...

出栈顺序 与 卡特兰数&lpar;Catalan&rpar;的关系

一,问题描述 给定一个以字符串形式表示的入栈序列,请求出一共有多少种可能的出栈顺序?如何输出所有可能的出栈序列? 比如入栈序列为:1 2 3  ,则出栈序列一共有五种,分别如下:1 2 3.1 3 2 ...

Spark案例分析

一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

随机推荐

【BZOJ】1901&colon; Zju2112 Dynamic Rankings(区间第k小&plus;树状数组套主席树)

http://www.lydsy.com/JudgeOnline/problem.php?id=1901 首先还是吐槽时间,我在zoj交无限tle啊!!!!!!!!我一直以为是程序错了啊啊啊啊啊啊. ...

Mac命令行语法高亮设置

mkdir -p ~/.vim/autoloadcurl -fLo ~/.vim/autoload/plug.vim https://raw.githubusercontent.com/junegun ...

&lbrack;SQL&rsqb;LTRIM 、 RTRIM、SUBSTRING 如何使用

(一) LTRIM ( character_expression )删除字符变量中的起始空格 RTRIM ( character_expression ) 删除字符变量中的尾随空格 (二) SUBST ...

MySQL auto&lowbar;increment的坑

背景: Innodb引擎使用B_tree结构保存表数据,这样就需要一个唯一键表示每一行记录(比如二级索引记录引用). Innodb表定义中处理主键的逻辑是: 1.如果表定义了主键,就使用主键唯一定位一 ...

类库探源——System&period;Configuration 配置信息处理

按照MSDN描述 System.Configuration 命名空间 包含处理配置信息的类型 本篇文章主要两方面的内容 1. 如何使用ConfigurationManager 读取AppSetting ...

System&period;out&period;println&lpar;&rpar;

System是java.lang中的类,out为System中的一个静态数据成员,out是java.io.PrintStream类的对象,而println()是java.io.PrintStream类 ...

Linux CentOS开机启动项设置命令:chkconfig

1.开机启动+++crontab 定时执行(定时执行可参考:https://www.cnblogs.com/prefectjava/p/9399552.html)可实现自动化运行的目的,简化了维护人员 ...

关于python中loc和iloc方法

pandas以类似字典的方式来获取某一列的值 import pandas as pd import numpy as np table = pd.DataFrame(np.zeros((4,2)), ...

iOS Message from debugger&colon; Terminated due to memory issue ~解决方法

一.概念: /** 1.内存管理概念 2.查看其他技术分享结论 3.产生崩溃原因 4.解决方法以及思路 CSND: https://blog.csdn.net/shihuboke/article/de ...

&lbrack;administrator&rsqb;&lbrack;netctl&rsqb; 给未插线未UP端口设置IP

以下内容均为使用netctl配置工具前提下: 需求: Tstation管理口做日常使用.没有千兆交换.所以加一个一块千兆的卡.这块卡是为了做数据传输专用的. 目前主要就是每周给T7备份使用.但是由于是 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值