相信大家看过很多大神关于动态规划的解释
不做解释(不会解释 )
重在一步一步理解
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(sc.hasNext()){
int m=sc.nextInt();
int n=sc.nextInt();
int x[]=new int[n+1];
for (int i = 1; i < x.length; i++) {
x[i]=sc.nextInt();
}
int y[]=new int[m+1];
for (int i = 1; i < x.length; i++) {
for(int j=m;j>=x[i];j--){
y[j]=Math.max(y[j], y[j-x[i]]+x[i]);
}
}
System.out.println(m-y[m]);
}
}
}