java如何输出数组的所有子集

   2024-09-30 5480
核心提示:在Java中,可以使用递归的方法来输出数组的所有子集。以下是一个示例代码:import java.util.ArrayList;import java.util.Arrays

在Java中,可以使用递归的方法来输出数组的所有子集。以下是一个示例代码:

import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Subsets {    public static void main(String[] args) {        int[] nums = {1, 2, 3};        List<List<Integer>> result = subsets(nums);        System.out.println(result);    }    public static List<List<Integer>> subsets(int[] nums) {        List<List<Integer>> result = new ArrayList<>();        backtrack(result, new ArrayList<>(), nums, 0);        return result;    }    private static void backtrack(List<List<Integer>> result, List<Integer> tempList, int[] nums, int start) {        result.add(new ArrayList<>(tempList));        for (int i = start; i < nums.length; i++) {            tempList.add(nums[i]);            backtrack(result, tempList, nums, i + 1);            tempList.remove(tempList.size() - 1);        }    }}

在这个示例中,subsets函数接收一个整数数组nums作为输入,然后调用backtrack函数来生成所有子集。backtrack函数使用递归的方式遍历数组的每个元素,并将其添加到临时列表tempList中。当遍历到数组的末尾时,将当前的tempList添加到结果列表result中。最后,返回结果列表result

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号