排列组合算法实战:Java vs Python的七十二变
作为数据开发工程师,排列组合就像炒菜时的盐——看似普通却不可或缺。今天我们用Java和Python分别实现这道"算法盐焗鸡",保证原汁原味还带点技术猛料!
一、问题定义
给定不重复整数数组,返回所有可能的全排列
示例输入:[1,2,3]
期望输出:6种排列方式([1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1])
二、Java的三种解法
方法1:经典回溯法(递归版)
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> result = new ArrayList<>();
backtrack(result, new ArrayList<>(), nums);
return result;
}
private void backtrack(List<List<Integer>> result, List<Integer> temp, int[] nums) {
if (temp.size() == nums.length) {
result.add(new ArrayList<>(temp));
return;
}
for (int num : nums) {
if (