美团笔试第四题0%
题目:给了a数组,b数组每一位都与a对应位置不同,即bi!=ai,b的所有元素之和与元素之和相同,b数组都是正整数。
到交卷还以为b数组必须是个位数😶,直到写了这条动态才反应过来,写了个寂寞。
代码如下,求dalao们看看思路对不对
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
static int[] a;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
a = new int[n];
int sum = 0;
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
sum += a[i];
}
int res = (int) dp(sum, n);
System.out.println(res);
}
public static double dp(int target, int n) {
if (n == 1) {
if (target != a[a.length - n]) {
return 1;
} else {
return 0;
}
}
double res = 0;
// for (int i = 1 ; i < 10; i ++) {
for (int i = 1; i < target; i++) {
if (i == a[a.length - n]) {
continue;
}
res += dp(target - i, n - 1) % (1E9 + 7);
}
return res % (1E9 + 7);
}
}