• 欢迎光临~

求数组的子集

开发技术 开发技术 2022-10-18 次浏览

样例
输入
{1,8,5,4}

输出

[[], [1], [1, 4], [1, 4, 5], [1, 4, 5, 8], [1, 4, 8], [1, 5], [1, 5, 8], [1, 8], [4], [4, 5], [4, 5, 8], [4, 8], [5], [5, 8], [8]]

public List<List<Integer>> allSubList(int[] arr){
List<Integer> temp = new ArrayList<>();
List<List<Integer>> result = new ArrayList<>();
Arrays.sort(arr);
group(arr, temp, result, 0);
return result;
}

private void group(int[] arr, List<Integer> temp, List<List<Integer>> result, int index){
result.add(new ArrayList<>(temp));
if (temp.size() == arr.length)
return;
for(int i = index; i < arr.length; i++){
temp.add(arr[i]);
group(arr, temp, result,i+1);
temp.remove(temp.size()-1);
}
}

 

程序员灯塔
转载请注明原文链接:求数组的子集
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com