From 8b0c82f1983deca0a6fc4d2de9dbd3aed00df35c Mon Sep 17 00:00:00 2001 From: changshou83 <1369548156@qq.com> Date: Fri, 18 Nov 2022 06:12:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(lc):=20=E6=AF=8F=E6=97=A5=E4=B8=80?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...275\345\272\246\344\271\213\345\222\214.js" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 "lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/18-891-\345\255\220\345\272\217\345\210\227\345\256\275\345\272\246\344\271\213\345\222\214.js" diff --git "a/lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/18-891-\345\255\220\345\272\217\345\210\227\345\256\275\345\272\246\344\271\213\345\222\214.js" "b/lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/18-891-\345\255\220\345\272\217\345\210\227\345\256\275\345\272\246\344\271\213\345\222\214.js" new file mode 100644 index 0000000..0a9f31a --- /dev/null +++ "b/lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/18-891-\345\255\220\345\272\217\345\210\227\345\256\275\345\272\246\344\271\213\345\222\214.js" @@ -0,0 +1,18 @@ +// 纯纯数学题 +function sumSubSeqWidths(nums) { + const MOD = 1e9 + 7; + const len = nums.length; + + // 根据子序列的定义,顺序不影响结果 + nums.sort((a, b) => a - b); + + let k = 1, + ans = 0; // (2^k)*(第i小的值-第i大的值) + for (let i = 0; i < length; i++) { + // 对于每一个元素,要知道you几个子序列以它为最小值,又有几个子序列以它为最大值 + // 如果某个数是数组中第k小的元素,那么以它为最小值的子元素就有2^(n-k)个,同理,以它为最大值的子序列就有2^k个 + ans = (ans + (nums[i] - nums[len - 1 - i]) * k) % MOD; + k = (2 * k) % MOD; + } + return ans; +}