当前位置: 首页 > 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.lryc.cn/news/460738.html

相关文章:

  • 【Unity实战篇】 接入百度翻译,实现文本自动翻译功能
  • ubuntu samba
  • Linux系统和数据库常用的命令2
  • Golang | Leetcode Golang题解之第468题验证IP地址
  • mermaid 图表相关
  • Unity接入人工智能
  • C语言笔记 14
  • Cpp::STL—list类的模拟实现(上)(13)
  • ListView的Items绑定和comboBox和CheckBox组合使用实现复选框的功能
  • PetaLinux工程的常用命令——petalinux-build
  • 【Qt】窗口预览(1)—— 菜单栏
  • 揭秘酱香型白酒中的6大劣质酒的特点,守好你的健康与钱包
  • C#拓展方法
  • 02.顺序表、链表简述+对比
  • 前端布局与响应式设计综合指南(三)
  • 当今SNARKs全景
  • PMP敏捷专题课:敏捷原则与理念
  • 有两个水桶,容量分别为5升和3升,请问如何使用这两个桶得到4升的水?
  • pytorch_lightning笔记
  • 从零开始了解云WAF,您的网站安全升级指南
  • Python脚本爬取目标网站上的所有链接
  • Linux下以编译源码的方式安装Qt5与Qt6及其使用
  • 替换掉js后重启nginx 页面加载后js还是原来的 解决方法.【js版本号】【js不生效】【js失效】
  • SHELL脚本之输出语句的使用
  • 《大规模语言模型从理论到实践》第一轮学习--Fine-tuning微调
  • XGBoost回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出
  • 【翻译】在 Python 应用程序中使用Qt Designer的UI文件
  • 002-Html
  • 微知-Mellanox提供的一个不错的测试rdma_cm方式建链的工具软件ucmatose?(ucmatose; ucmatose -s 1.1.1.1)
  • Vivado HLS C/RTL 联合仿真时间