这个问题就是简单的选与不选的问题定义递归dfs(int[]arr,int index,int rest) 并且维护最小剩余容量对于每一种状态 我们都去更新答案 min = Math.min(rest,min)进入到递归里 我们有两种选择 要么选当前物品 要么不选当前物品如果当前物品的体积已经大于剩余的体积 我们就不能选 否则 我们就递归 dfs(int[] arr,index+1,rest-arr[index])要么就不选 直接继续递归 dfs(int[]arr,index+1,rest)等所有情况都遍历完后 就能找到其中剩余体积的最小值了 import java.util.Scanner; ...