可以把sum[i-1]和t[i-1]换成一个变量存储,也能节省一些空间
int n = in.nextInt();
int[] a = new int[n+1];
long[] sum = new int[n+1];//存前缀和
sum[0]=0;
long[] t = new int[n+1];
t[0]=0;
long res;
for(int i=1;i<=n;i++){
a[i]=in.nextInt();
sum[i]=sum[i-1]+a[i];
t[i]=t[i-1]+sum[i-1];
long tmp = (t[i]*a[i])%1000000007;
res = (res+tmp)%1000000007;
}