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

力扣1031. 两个非重叠子数组的最大和

力扣1031. 两个非重叠子数组的最大和

题目解析及思路

题目要求找到两段长分别为firstLensecondLen的子数组,使两段元素和最大

图解见灵神

枚举第二段区间的右端点,在左边剩余部分中找出元素和最大的第一段区间,并用前缀和优化求子数组元素和

代码

class Solution {
public:int maxSumTwoNoOverlap(vector<int>& nums, int firstLen, int secondLen) {int ans = 0,n = nums.size(),s[n+1];s[0] = 0;//求前缀和for(int i=1;i<=n;i++)s[i] = s[i-1] + nums[i-1];auto f = [&](int firstLen,int secondLen){int maxsum = 0;//枚举第二段区间右端点for(int i = firstLen+secondLen;i<=n;i++){//求第一段区间最大值maxsum = max(maxsum,s[i-secondLen] - s[i-secondLen-firstLen]);ans = max(ans,maxsum + s[i] - s[i-secondLen]);}};//左a右bf(firstLen,secondLen);//左b右af(secondLen,firstLen);return ans;}
};

http://www.mrgr.cn/news/46655.html

相关文章:

  • Vue2+OpenLayers实现常用的功能整合(持续更新ing)
  • 【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
  • Python语言的编程范式
  • [AUTOSAR通信篇] - AutoSAR通信架构
  • uniapp实现H5页面内容居中与两边留白,打造类似微信公众号阅读体验
  • 干净卸载Windows的Node.js环境的方法
  • 体制内的必须要知道的“人情世故”及职场礼仪
  • 快速区分 GPT-3.5 与 GPT-4
  • 腾讯云SDK连麦应用
  • 高质量带货短视频素材来源推荐
  • 2.安装keepalived详细过程
  • [算法] 数组
  • 【必须知道】LLM大模型幻觉(hallucination)的成因和处理测试
  • [C++ 核心编程]笔记 3 引用做函数参数
  • c++11~c++20 thread_local
  • 老外发微信时说“I‘ll ping you”是什么意思?发微信怎么用英语说柯桥学英语到哪里?
  • 计算机网络:数据链路层 —— 数据链路层概述
  • LSTM(长短时记忆网络)
  • 城门(动态规划)
  • 【时时三省】(C语言基础)指针笔试题7
  • TLS 加密的原理和过程
  • C++游戏开发指南
  • 操作系统-系统调用
  • [JAVA]连接数据库 并在Java中实现查询员工信息功能
  • OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)
  • 解决Nginx出现“Too many open files”的问题