集合的所有子集
阿新 • • 發佈:2020-12-16
技術標籤:演算法
牛客地址
解題思路
假設集合的大小為n,則子集的個數為
從遍歷,對每一個數字進行二進位制的判斷。
實現程式碼
import java.util.*; public class Solution { private ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); public ArrayList<ArrayList<Integer>> subsets(int[] S) { if(S == null || S.length == 0){ return res; } int len = S.length; for(int mask = 0; mask < (1 << len); mask++){ ArrayList<Integer> path = new ArrayList<>(); for(int i = 0; i < len; i++){ if(mask > 0 && ((mask & (1 << i)) > 0)){ path.add(S[i]); } } res.add(new ArrayList<Integer>(path)); } return res; } }