java Combination
时间: 2023-12-06 15:44:22 浏览: 127
Combination.java
以下是 Java 中实现组合的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Combination {
public static List<List<Integer>> combine(int n, int k) {
List<List<Integer>> result = new ArrayList<>();
backtrack(result, new ArrayList<>(), n, k, 1);
return result;
}
private static void backtrack(List<List<Integer>> result, List<Integer> temp, int n, int k, int start) {
if (temp.size() == k) {
result.add(new ArrayList<>(temp));
return;
}
for (int i = start; i <= n; i++) {
temp.add(i);
backtrack(result, temp, n, k, i + 1);
temp.remove(temp.size() - 1);
}
}
public static void main(String[] args) {
int n = 4, k = 2;
List<List<Integer>> result = combine(n, k);
System.out.println(result);
}
}
```
该代码使用回溯算法实现组合。`backtrack` 方法递归地枚举所有可能的组合,当组合长度达到 `k` 时,将其加入结果列表中。在递归的过程中,使用 `start` 参数避免重复选取数字。最终返回结果列表。
阅读全文