网上有贴说,第四题有01背包问题解决我发现不行。很简单,小的值对应的的余数也可以大,大的值对应的余数也可以小。逻辑混乱。所以我添加了一个辅助集合Sorted,进行暴力破解。 static SortedSet<Integer> set = new TreeSet<>();     public static void knapsack01(int[] data, int k, int m, int total) {         int n = data.length;         // 已经对数组中的所有数据进行判断了         if (k==n) {             set.add(total%m);         } else {             // 选当前索引的数组,也就是total值增加             knapsack01(data, k+1, m, total+data[k]);             // 不选当前索引的数组,total值不变             knapsack01(data, k+1, m, total);         }     }