求出一个数组的所有子数组。 
比如{1,2,3}所有子数组{1}{1,2}{1,3}{1,2,3}{2}{2,3}{3}。如何实现啊 ?

解决方案 »

  1.   

    public class Test
    {
    public static void traverse(int[] value, int[] arr, int index)
    {
    if(index == arr.length)
    {
    print(value, arr);
    return;
    }
    value[index] = 1;
    traverse(value, arr, index + 1);
    value[index] = 0;
    traverse(value, arr, index + 1);
    return;
    }

    public static void print(int[] value, int[] arr)
    {
    StringBuffer buffer = new StringBuffer();
    for(int i = 0; i < value.length; i++)
    {
    if(value[i] == 1)
    {
    buffer.append(arr[i] + " ");
    }
    }
    if(buffer.length() != 0)
    {
    System.out.println("{ " + buffer.toString() + "}");
    }
    }

    public static void main(String[] args)
    {
    int[] arr = {1, 2, 3};
    int[] value = new int[arr.length];
    traverse(value, arr, 0);
    }
    }