思路:
注意,这题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;
}
};