最后一道题 花了一个多小时想出来的!!!!!!!!!!!!!!! public class 数组排列求和Demo {     public static void main(String[] args) {         int[] question= {1,3,8,2,7,9,5,4,1,5,4,1,2,2,3};         ArrayList ans = new ArrayList();         数组排列求和Demo m = new 数组排列求和Demo();         m.calculation(question,ans,16,0,0);     }     /**      * 求数组中所有和为target的集合      * 递归方法,回溯方法      * @param q 给定一个数组      * @param ans 展示可能性的链表      * @param target 问题      * @param i 表示层数,必须输入0      * @param sum 表示当前总数,必须输入0      */     public void calculation(int[]q,ArrayList ans , int target,int i,int sum) {         for(int t = i;t<q.length;t++){             if(sum+q[t]>target){continue;}             if(sum+q[t]==target){                 ans.add(q[t]);                 System.out.println(ans);                 ans.remove(ans.size()-1);             }             ans.add(q[t]);             sum+=q[t];             calculation(q,ans,target,t+1,sum);             //判断             ans.remove(ans.size()-1);             sum-=q[t];         }     }