Daily LeetCode – day0112 0891. Sum of Subsequence Widths

import java.util.Arrays;

// 0891. Sum of Subsequence Widths
class Solution {
    public int sumSubseqWidths(int[] nums) {
        final long MOD = 1000000007;
        Arrays.sort(nums);
        long ans = 0L;
        int len = nums.length;
        long[] powerBased2 = new long[len];
        powerBased2[0] = 1L;
        for (int i = 1; i < len; ++i) {
            powerBased2[i] = (powerBased2[i - 1] << 1) % MOD;
        }
        for (int i = 0; i < len; ++i) {
            ans = (ans + (powerBased2[i] - powerBased2[len - 1 - i]) * nums[i]) % MOD;
        }
        return (int) ans;
    }
}
学习笔记:
今天这是一道数学题,先发现和顺序无关,那就排序。
然后就看这个数成为最小值的次数,和成为最大值的次数。
然后移项整理出结果。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注