求数组的乘积,比如输入{2,3,5}输出{2,3,5,6,10,15,30},再比如 {2,3,4,5}输出{2,3,4,5,6,8,10,12,15,20,24,30,40,60,120},
import java.util.*;
public class GetProductSubsetIII {
public static List<Integer> getProduct(int[] nums) {
List<Integer> res = new ArrayList<Integer>();
Arrays.sort(nums);
helper(res, nums, 1, 0, 0);
Collections.sort(res);
return res;
}
private static void helper(List<Integer> res, int[] nums, int prod, int level, int start) {
if (level != 0) {
res.add(prod);
}
for (int i = start; i < nums.length; i++) {
helper(res, nums, prod * nums[i], level + 1, i + 1);
}
}
public static void main(String[] args) {
int[] array = { 2, 3, 5 };
for (int i : getProduct(array)) {
System.out.println(i);
}
}
}