当前位置: 首页 > news >正文

DeepSeek LeetCode 2681.英雄的力量 JavaScript实现

以下是 LeetCode 2681“英雄的力量”的 JavaScript 实现。解题思路与 Java 版本一致1. 排序将数组升序排序便于确定最小值和最大值2. 数学优化对于每个元素作为最大值时计算它对答案的贡献3. 前缀和维护所有可能的最小值之和避免重复计算JavaScript 代码javascriptvar sumOfPower function(nums) {const MOD 1000000007;nums.sort((a, b) a - b);let ans 0;let prefixSum 0; // 维护 Σ nums[j] * 2^jfor (let i 0; i nums.length; i) {const val nums[i];// 当前元素作为最大值的贡献val² * (所有可能的最小值之和)const contribution (val * val) % MOD;const sum (prefixSum val) % MOD;ans (ans contribution * sum) % MOD;// 更新前缀和当前元素会成为后续元素的最小值候选prefixSum (prefixSum * 2 val) % MOD;}return ans;};详细版本便于理解javascriptvar sumOfPower function(nums) {const MOD BigInt(1000000007);nums.sort((a, b) a - b);let ans 0n;let prefixSum 0n; // Σ nums[j] * 2^jfor (let i 0; i nums.length; i) {const val BigInt(nums[i]);// 当前元素作为最大值的贡献const maxPower (val * val) % MOD;const minSum (prefixSum val) % MOD;ans (ans maxPower * minSum) % MOD;// 更新前缀和用于下一轮prefixSum (prefixSum * 2n val) % MOD;}return Number(ans);};暴力验证版本仅用于理解javascript// 暴力解法O(2^n)仅用于验证小数据var sumOfPowerBrutal function(nums) {const n nums.length;let ans 0;// 枚举所有非空子集for (let mask 1; mask (1 n); mask) {let minVal Infinity;let maxVal -Infinity;for (let i 0; i n; i) {if (mask (1 i)) {minVal Math.min(minVal, nums[i]);maxVal Math.max(maxVal, nums[i]);}}ans (ans minVal * maxVal * maxVal) % 1000000007;}return ans;};算法演示javascript// 示例nums [2, 1, 4]// 排序后[1, 2, 4]// 手动计算过程// 排序数组: [1, 2, 4]//// i0, val1:// prefixSum 0// minSum 0 1 1// contribution 1² * 1 1// ans 1// prefixSum 0*2 1 1//// i1, val2:// minSum 1 2 3// contribution 2² * 3 4 * 3 12// ans 1 12 13// prefixSum 1*2 2 4//// i2, val4:// minSum 4 4 8// contribution 4² * 8 16 * 8 128// ans 13 128 141console.log(sumOfPower([2, 1, 4])); // 141使用 BigInt 避免溢出的版本推荐javascriptvar sumOfPower function(nums) {const MOD 1000000007n;nums.sort((a, b) a - b);let ans 0n;let prefixSum 0n;for (let i 0; i nums.length; i) {const val BigInt(nums[i]);// 当前元素作为最大值的贡献const maxPower (val * val) % MOD;const minSum (prefixSum val) % MOD;ans (ans maxPower * minSum) % MOD;// 更新前缀和每个之前的最小值都有选或不选两种可能prefixSum (prefixSum * 2n val) % MOD;}return Number(ans);};数学原理解释对于排序后的数组 a[0] ≤ a[1] ≤ ... ≤ a[n-1]1. 固定最大值 a[i]· 所有以 a[i] 为最大值的子集最小值可以是 a[0], a[1], ..., a[i]· 对于最小值 a[j] (0 ≤ j ≤ i)中间元素 (j1 到 i-1) 可以任意选或不选· 子集个数 2^(i-j-1)当 ji 时个数为 12. 贡献公式贡献 Σ_{j0}^{i} a[j] * a[i]² * 2^(i-j-1) a[i]² * Σ_{j0}^{i} a[j] * 2^(i-j-1)3. 前缀和优化令 S[i] Σ_{j0}^{i} a[j] * 2^(i-j)则 S[i] 2 * S[i-1] a[i]其中 S[-1] 04. 贡献简化贡献 a[i]² * (S[i-1] a[i])复杂度分析· 时间复杂度O(n log n)主要来自排序· 空间复杂度O(1)只使用了常数个变量运行示例javascript// 测试用例console.log(sumOfPower([2, 1, 4])); // 141console.log(sumOfPower([1, 1, 1])); // 6console.log(sumOfPower([3])); // 27console.log(sumOfPower([1, 2, 3, 4])); // 需要验证这个解法利用了数学推导和前缀和技巧将指数级复杂度优化为线性加上排序的 O(n log n)。
http://www.gsyq.cn/news/1386147.html

相关文章:

  • 产品成本管理的要义在哪里?
  • DeepSeek基准测试避坑手册:92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染
  • 服务器日志分析实战:用Python追踪HTTP 404错误并可视化异常频率
  • 别再死记硬背Payload了!我用XSS-Game靶场,带你拆解18种过滤规则背后的绕过逻辑
  • 别再被‘找不到源文件’卡住了!IIS和.NET 3.5安装失败的终极排查手册
  • 告别游戏卡顿!保姆级教程:在Win10上彻底搞定Antimalware Service高占用
  • ARM EDPRSR寄存器详解:调试状态与电源管理
  • 自动化供应链攻击6小时内攻陷5561个 GitHub 仓库
  • ARM架构中CONSTRAINED UNPREDICTABLE行为解析
  • 从《原神》到独立游戏:拆解Unity帧更新(Update/FixedUpdate)如何影响你的游戏手感
  • 上海单方起诉离婚律师实测评测:上海离婚股权分割律师/上海离婚诉讼律师/上海离婚财产分割律师/上海离婚隐匿财产律师/选择指南 - 优质品牌商家
  • ThinkPad开机报错0183/0253?别慌,手把手教你搞定EFI变量错误(附BIOS重置教程)
  • 别再盲跑了!手把手教你用Arduino Zero在IDE 2.0里设置断点单步调试
  • 2026广州搬家打包权威机构推荐:广州搬家收纳、广州搬屋、广州搬迁、广州红木搬运、广州蚂蚁搬家、广州蚂蚁搬屋、广州专业搬家选择指南 - 优质品牌商家
  • 2026雪花全粉辊筒干燥机技术拆解与主流品牌盘点:马铃薯雪花全粉设备、麦片辊筒干燥机、米粉辊筒干燥机、红薯全粉设备选择指南 - 优质品牌商家
  • 用Python+Pandas+Seaborn复现Lending Club数据分析(附完整代码与数据集)
  • AI算法持续迭代,GEO语义优化如何重构内容长效运营逻辑
  • 竞争存在论:竞争的语法——对称性破缺的底层逻辑
  • Python实战:Gabor滤波器在纹理识别中的降维与特征工程
  • 2026年马铃薯雪花全粉加工设备TOP5实测排行:酵母辊筒干燥机、雪花全粉辊筒干燥机、预糊化淀粉辊筒干燥机、马铃薯全粉加工设备选择指南 - 优质品牌商家
  • ARM架构CONSTRAINED UNPREDICTABLE行为解析与应对
  • 亚马逊 Rufus 关停,Alexa 正式上线:卖家必须读懂的6条新规则
  • 推荐题目:P1002 [NOIP 2002 普及组] 过河卒
  • G-Helper终极指南:如何彻底掌控你的华硕笔记本性能与能耗
  • 2026年5月口碑好的山东耐磨地质钢管源头厂家排行榜厂家推荐榜,R780地质钢管、深井地质钢管、岩心地质钢管厂家选择指南 - 海棠依旧大
  • 荣耀时刻!格瑞普公司荣膺2026 UASE无人机展“金鹰奖”与“低空经济产业十强”双料大奖
  • 上海孚格和迪普为仁是一家吗?
  • 从房价预测到用户流失分析:用Excel和Python分别实战多元线性回归,最小二乘法到底在算什么?
  • 2026年5月专业的上海屋面屋顶防水公司哪家靠谱厂家推荐榜:屋面防水/屋顶漏水/别墅防水工程厂家选择指南 - 海棠依旧大
  • 营销自动化不是越快越好,而是越久越强:Lindy工作流的4个抗熵增信号,90%团队至今未监测