解法一:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[3];
for(int i = 0;i < arr.length;i++) {
arr[i] = sc.nextInt();
}
boolean flag = false;
for(int i = 0;i < n;i++) {
for(int j = 0;j < n;j++) {
for(int k = 0;k < n;k++) {
for(int t = 0;t < n;t++) {
if(arr[i]+arr[j]+arr[k]+arr[t] == m) {
flag = true;
}
}
}
}
}
if(flag) {
System.out.println("YES");
}
else {
System.out.println("NO");
}
sc.close();
}
}
这算法的时间复杂度是
显然如果n的取值较大,并不可取