思路:
注意,這題907題目不一樣,這個是可以打亂的組合,那個是必須連續
把題目拆開來看,可以看出,想當與把每個子序列的最大值加起來,把最小值減掉
而第i大的數字作為最大值的組合有2^i種。
第i大的數字作為最小值的組合有2^(n-i)種
class Solution {
public:
sort(A.begin(),A.end());
int n = A.size();
long long c = 1,result = 0;
long long m = 1e9+7;
for(int i=0;i<n;i++,c = (c<<1)%(m))
{
result =(result + A[i] * c - A[n-1-i] *c)%m;
}
return result;
}
};