Leetcode: 891. Sum of Subsequence Widths

Problem Statement

from typing import List


class Solution:
    def sumSubseqWidths(self, nums: List[int]) -> int:
        N = len(nums)
        MOD = 10**9 + 7
        nums.sort()

        mins = 0
        maxs = 0
        p = 1
        for i in range(N):
            mins = (mins + nums[N - i - 1] * p) % MOD
            maxs = (maxs + nums[i] * p) % MOD
            p = (p * 2) % MOD

        return (maxs - mins + MOD) % MOD