第一题基本思想和楼主一样。。。。。
import java.util.Scanner;


public class meituan {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int N = in.nextInt();

int[] nums = new int[N];

for(int i = 0; i < N; i++){

nums[i] = in.nextInt();

}

int K  = in.nextInt();

int step = 0;

long[] dp = new long[N+1];

dp[0] = 0;

dp[1] = nums[0];

int index = 1;

for(int i = 2; i <=N; i++){

dp[i] = dp[i-1] + nums[index++];

}

int max = 0;

for(int i = 0; i <=N; i++){

for(int j = N; j>=i; j--){

if((dp[j] - dp[i])%K==0){

max = Math.max(max, j-i);

}

}

}

// for(int i = N-1; i>=0; i--){

// if(dp[i]%K==0){

// System.out.println(i+1);

// break;

// }

// }

System.out.println(max);

}

}


楼主看看哪里有问题