java 实现全排列
2024-08-26 15:11:09
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
f1(0, nums, res);
return res;
} private void f1(int i, final int[] nums, List<List<Integer>> res) {
if (i == nums.length) {
//记录当前解
List<Integer> 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];
}
}
}
}
最新文章
- powerdesigner-从excel导入table模型
- MyBatis持久层框架使用总结
- ReactNative真机运行指南
- MySql5.7-多源复制(多主单从)
- getElementByClassName封装函数用法
- homework07
- 百度地图JavaScript API V1.5初级开发工具类
- Java学习笔记——MySQL的安装使用以及SQL语法简介
- 解决mysql启动时报The server quit without updating PID file 的错误(转)
- Hibernate基础学习(二)&mdash;Hibernate相关API介绍
- [LeetCode] Poor Pigs 可怜的猪
- Linux系统GNOME主题安装与Tweaks工具使用
- luogu 1268 树的重量
- rem和em学习笔记及CSS预处理(未完待续)
- Confluence 6 管理协同编辑
- window、linux安装jdk,excel 导入oracle,WebService,window 端口查看,svn服务安装,oracle用户解锁
- 学习计划 mysql explain执行计划任务详解
- svn不提交.net项目中的bin
- PHP excel读取excel文件转换为数组
- myeclipse中文编码错误,没有GBK选项