直接用递归实现:
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/** * * @author lazy_p * @date 2010-9-1 * */ public class ZuheTest1 { static void listAll(List list, String prefix) { System.out.println(prefix);
for (int i = 0;
i < list.size();
++i) { List temp = new LinkedList(list);
listAll(temp, prefix + temp.remove(i));
} } public static void main(String[] args) { String[] ar = new String[] { "1", "2", "3" };
listAll(Arrays.asList(ar), "");
} }
输出结果:
【求一个序列的所有组合的算法】
1
12
123
13
132
2
21
213
23
231
3
31
312
32
321
推荐阅读
- 人工智能|干货!人体姿态估计与运动预测
- 分析COMP122 The Caesar Cipher
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 数据结构与算法|【算法】力扣第 266场周赛
- 数据结构和算法|LeetCode 的正确使用方式
- leetcode|今天开始记录自己的力扣之路
- 人工智能|【机器学习】深度盘点(详细介绍 Python 中的 7 种交叉验证方法!)
- 网络|简单聊聊压缩网络