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];
}
}
}
}

最新文章

  1. powerdesigner-从excel导入table模型
  2. MyBatis持久层框架使用总结
  3. ReactNative真机运行指南
  4. MySql5.7-多源复制(多主单从)
  5. getElementByClassName封装函数用法
  6. homework07
  7. 百度地图JavaScript API V1.5初级开发工具类
  8. Java学习笔记——MySQL的安装使用以及SQL语法简介
  9. 解决mysql启动时报The server quit without updating PID file 的错误(转)
  10. Hibernate基础学习(二)&mdash;Hibernate相关API介绍
  11. [LeetCode] Poor Pigs 可怜的猪
  12. Linux系统GNOME主题安装与Tweaks工具使用
  13. luogu 1268 树的重量
  14. rem和em学习笔记及CSS预处理(未完待续)
  15. Confluence 6 管理协同编辑
  16. window、linux安装jdk,excel 导入oracle,WebService,window 端口查看,svn服务安装,oracle用户解锁
  17. 学习计划 mysql explain执行计划任务详解
  18. svn不提交.net项目中的bin
  19. PHP excel读取excel文件转换为数组
  20. myeclipse中文编码错误,没有GBK选项

热门文章

  1. 初学qt——提示窗体
  2. unittest实战(二):用例编写
  3. Javascript学习笔记-基本概念-操作符
  4. PHP文件上传 (以上传txt文件为例)
  5. 在shell脚本中调用sql语句
  6. 微服务优化之使用gRPC做微服务的内部通信
  7. Python基础-求两个字符串最长公共前轴
  8. DUBBO 面试灵魂18问
  9. Golang package轻量级KV数据缓存——go-cache源码分析
  10. Vue2.0 【第一季】第4节 v-text &amp; v-html