总结:
本题使用动态规划

import java.util.*;
public class Main{
    public static void main(String arg[]){
        Scanner sc = new Scanner(System.in);
        int vol = sc.nextInt();//箱子容量
        int num = sc.nextInt();//物品数量
        int[] v = new int[num+1];//物品的体积
        for(int i=1;i<=num;i++)
            v[i] = sc.nextInt();
        int[] dp = new int[vol+1];//记录可装入箱中的最大体积
        for(int i=1;i<=num;i++){
            //每个物品只能使用一次,故使用倒叙
            for(int j=vol;j>=v[i];j--){
                dp[j] = Math.max(dp[j],dp[j-v[i]]+v[i]);
            }
        }
        System.out.println(vol-dp[vol]);
    }
}