1. 程式人生 > >Java—求一個數組的所有子陣列

Java—求一個數組的所有子陣列

最近在忙秋招,投了各種公司,參加了各種線上筆試,在線上筆試的過程中,經常遇到一些題目,想要求得最終結果的話需要獲取某一陣列的所有子集(暴力破解)。

import java.util.ArrayList;
import java.util.List;

/**
 * Created by byuwa on 2017/9/15.
 */
public class SubArrays {
    public static void main(String[] args) {
        int[] nums = {1,2,3};
        List<ArrayList<Integer>> arrays = getSubArrays(nums);
        for
(int i=0;i<arrays.size();i++){ ArrayList<Integer> sub = arrays.get(i); for(int j=0;j<sub.size();j++){ System.out.print(sub.get(j)+" "); } System.out.println(); } } public static List getSubArrays(int[] nums){ int
count = (int)Math.pow(2,nums.length); List<ArrayList<Integer>> arrays = new ArrayList<ArrayList<Integer>>(); for(int i=1;i<count;i++){ List<Integer> subarray = new ArrayList<Integer>(); int temp = i; int index = 0
; while (temp!=0){ if((temp&1)==1){ subarray.add(nums[index]); } index++; temp = temp >>1; } arrays.add((ArrayList<Integer>) subarray); } return arrays; } }