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

千问 LeetCode 2281.巫师的总力量和 public int totalStrength(int[] strength)

LeetCode 2281. 巫师的总力量和 是一道经典的 贡献法 + 单调栈 + 前缀和的前缀和 题目。题目要求对数组的所有非空连续子数组,计算:

min(subarray) * sum(subarray) 的总和,并对 10^9 + 7 取模。

✅ 解题思路(核心思想)

我们 不枚举所有子数组(那样是 O(n²)),而是 枚举每个元素作为最小值时的贡献。

步骤如下:

1. 使用单调栈 找出每个位置 i:
   - 左边第一个 严格小于 strength[i] 的位置 → left[i]
   - 右边第一个 小于等于 strength[i] 的位置 → right[i]

   > 这样可以确保每个子数组只被其 最左边的最小值 统计一次,避免重复。

2. 对于每个 i,它作为最小值能影响的区间是 [L, R] = [left[i]+1, right[i]-1]。

3. 在这个区间中,所有包含 i 的子数组的 元素和之和 可以通过 前缀和的前缀和 快速计算。

4. 最终贡献为:  
      strength[i] * (所有包含 i 且最小值为 strength[i] 的子数组的元素和之和)

✅ Java 实现(高效、清晰、取模安全)

import java.util.*;

public class Solution {
    public int totalStrength(int[] strength) {
        final long MOD = 1_000_000_007;
        int n = strength.length;

        // Step 1: 计算前缀和 s 和前缀和的前缀

http://www.jsqmd.com/news/806424/

相关文章:

  • AI技能开发脚手架:从零构建大模型应用的标准化起点
  • RAG:嵌入模型评估与选型
  • Linux Xenomai系统在火箭半实物仿真中的深度应用
  • 零基础想学网络安全?初级入门教程一次性讲清
  • 【IDEA/基本设置】主题、字体、导包;Code Style配置(google的Java Code Stytle);git提交优化import;vscode设置Java规范
  • 深度强化学习在航天控制中的仿真到实物迁移挑战
  • 安卓AI助手深度解析:全局唤醒、多模态输入与智能体模式实战
  • IPv6核心技术解析与企业部署实战:从原理到物联网应用
  • FastAPI整洁架构实践:从分层设计到可测试代码
  • OptiSearch:浏览器扩展实现AI与搜索引擎的无缝集成
  • ComfyUI全面掌握-知识点详解——自定义节点安装与首次 AI 绘图(实操+排错)
  • 别再为本科毕业论文熬大夜!Paperxie 智能写作,一键搞定终稿的正确姿势
  • ResNet的“捷径”设计,如何影响了后来的Transformer和扩散模型?
  • 千问 LeetCode 2281.巫师的总力量和 Python3实现
  • 文档格式转换折腾、排版太丑?huashu-md-html:双向格式转换流水线,一站式解决万物转干净Markdown与精美HTML排版难题!
  • 渗透测试保姆级入门教程,零基础到精通一篇搞定
  • 过零电压比较器基础知识及Multisim电路仿真
  • DeepSeek大模型Kubernetes编排落地全链路(从Helm Chart定制到GPU拓扑感知调度)
  • 用ChatGPT批量生成高互动Instagram内容:5步工作流+4类避坑红线(数据实测CTR提升217%)
  • Linux---挂载系统
  • 基于Electron的本地字幕翻译工具开发全解析
  • CxFlatUI——一款开源免费、现代化的 WinForm UI 控件库
  • 用 LangChain 写一个最简 Agent:80 行代码搞清楚到底发生了什么
  • Linux开发工具
  • AI辅助Android开发:新时代的工程师技能要求与面试指南
  • 从富士康辩论看电子制造业:效率、成本与人性的技术平衡
  • Bunge组织架构重组:农业巨头的战略转型解析
  • 蓝桥杯EDA国赛备赛
  • AI 赋能的 Android 开发:迈向智能化、高效化的新范式
  • 特征提取:从手工特征到深度学习