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

【每日一题】689. 三个无重叠子数组的最大和-2023.11.19

题目:

689. 三个无重叠子数组的最大和

给你一个整数数组 nums 和一个整数 k ,找出三个长度为 k 、互不重叠、且全部数字和(3 * k 项)最大的子数组,并返回这三个子数组。

以下标的数组形式返回结果,数组中的每一项分别指示每个子数组的起始位置(下标从 0 开始)。如果有多个结果,返回字典序最小的一个。

示例 1:

输入:nums = [1,2,1,2,6,7,5,1], k = 2
输出:[0,3,5]
解释:子数组 [1, 2], [2, 6], [7, 5] 对应的起始下标为 [0, 3, 5]。
也可以取 [2, 1], 但是结果 [1, 3, 5] 在字典序上更大。

示例 2:

输入:nums = [1,2,1,2,1,2,1,2,1], k = 2
输出:[0,2,4]

提示:

  • 1 <= nums.length <= 2 * 104
  • 1 <= nums[i] < 216
  • 1 <= k <= floor(nums.length / 3)

解答:

class Solution {public int[] maxSumOfOneSubarray(int[] nums, int k) {int[] ans = new int[1];int sum1 = 0, maxSum1 = 0;for (int i = 0; i < nums.length; ++i) {sum1 += nums[i];if (i >= k - 1) {if (sum1 > maxSum1) {maxSum1 = sum1;ans[0] = i - k + 1;}sum1 -= nums[i - k + 1];}}return ans;}
}

class Solution {public int[] maxSumOfTwoSubarrays(int[] nums, int k) {int[] ans = new int[2];int sum1 = 0, maxSum1 = 0, maxSum1Idx = 0;int sum2 = 0, maxSum12 = 0;for (int i = k; i < nums.length; ++i) {sum1 += nums[i - k];sum2 += nums[i];if (i >= k * 2 - 1) {if (sum1 > maxSum1) {maxSum1 = sum1;maxSum1Idx = i - k * 2 + 1;}if (maxSum1 + sum2 > maxSum12) {maxSum12 = maxSum1 + sum2;ans[0] = maxSum1Idx;ans[1] = i - k + 1;}sum1 -= nums[i - k * 2 + 1];sum2 -= nums[i - k + 1];}}return ans;}
}

代码:

class Solution {public int[] maxSumOfThreeSubarrays(int[] nums, int k) {int[] ans=new int[3];int sum1=0,maxSum1=0,maxSum1Idx=0;int sum2=0,maxSum12=0,maxSum12Idx1=0,maxSum12Idx2=0;int sum3=0,maxTotal=0;for(int i=2*k;i<nums.length;i++){sum1+=nums[i-2*k];sum2+=nums[i-k];sum3+=nums[i];if(i>=3*k-1){if(sum1>maxSum1){maxSum1=sum1;maxSum1Idx=i-3*k+1;}if(maxSum1+sum2>maxSum12){maxSum12=maxSum1+sum2;maxSum12Idx1=maxSum1Idx;maxSum12Idx2=i-2*k+1;}if(maxSum12+sum3>maxTotal){maxTotal=maxSum12+sum3;ans[0]=maxSum12Idx1;ans[1]=maxSum12Idx2;ans[2]=i-k+1;}sum1-=nums[i-3*k+1];sum2-=nums[i-2*k+1];sum3-=nums[i-k+1];}}return ans;}
}

结果:

相关文章:

【每日一题】689. 三个无重叠子数组的最大和-2023.11.19

题目&#xff1a; 689. 三个无重叠子数组的最大和 给你一个整数数组 nums 和一个整数 k &#xff0c;找出三个长度为 k 、互不重叠、且全部数字和&#xff08;3 * k 项&#xff09;最大的子数组&#xff0c;并返回这三个子数组。 以下标的数组形式返回结果&#xff0c;数组中…...

“开源 vs. 闭源:大模型的未来发展趋势预测“——探讨大模型未来的发展方向

文章目录 每日一句正能量前言什么是大模型的开源与闭源开源与闭源的定义和特点开源的意义开源和闭源的优劣势比较不同的大模型企业&#xff0c;开源、闭源的策略不尽相同。企业在开发垂类模型时选择开源还是闭源大模型开源vs 闭源&#xff1a;两者并非选择题后记 每日一句正能量…...

计算机网络——物理层-信道的极限容量(奈奎斯特公式、香农公式)

目录 介绍 奈氏准则 香农公式 介绍 信号在传输过程中&#xff0c;会受到各种因素的影响。 如图所示&#xff0c;这是一个数字信号。 当它通过实际的信道后&#xff0c;波形会产生失真&#xff1b;当失真不严重时&#xff0c;在输出端还可根据已失真的波形还原出发送的码元…...

【算法挨揍日记】day31——673. 最长递增子序列的个数、646. 最长数对链

673. 最长递增子序列的个数 673. 最长递增子序列的个数 题目解析&#xff1a; 给定一个未排序的整数数组 nums &#xff0c; 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 解题思路&#xff1a; 算法思路&#xff1a; 1. 状态表⽰&#xff1a; 先尝试…...

Jmeter做接口测试

1.Jmeter的安装以及环境变量的配置 Jmeter是基于java语法开发的接口测试以及性能测试的工具。 jdk&#xff1a;17 (最新的Jeknins&#xff0c;只能支持到17) jmeter&#xff1a;5.6 官网&#xff1a;http://jmeter.apache.org/download_jmeter.cgi 认识JMeter的目录&#xff1…...

第14届蓝桥杯青少组python试题解析:23年5月省赛

选择题 T1. 执行以下代码&#xff0c;输出结果是&#xff08;&#xff09;。 lst "abc" print(lstlst)abcabc abc lstlst abcabc T2. 执行以下代码&#xff0c;输出的结果是&#xff08;&#xff09;。 age {16,18,17} print(type(sorted(age)))<class set&…...

SpringCloud 微服务全栈体系(十四)

第十一章 分布式搜索引擎 elasticsearch 四、RestAPI ES 官方提供了各种不同语言的客户端&#xff0c;用来操作 ES。这些客户端的本质就是组装 DSL 语句&#xff0c;通过 http 请求发送给 ES。官方文档地址&#xff1a;https://www.elastic.co/guide/en/elasticsearch/client/…...

【开题报告】基于微信小程序的个人健康管理系统的设计与实现

1.选题背景与意义 在现代社会&#xff0c;人们对健康的关注日益增加。随着生活方式的变化和工作压力的增加&#xff0c;许多人意识到保持良好的身体健康对于提高生活质量和幸福感的重要性。 然而&#xff0c;许多人在日常生活中缺乏对自身健康状况的了解和管理。他们可能没有…...

Swagger笔记

一、导包 <!--引入swagger--> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version> </dependency> <!--前端的UI界面--> <dependency><…...

数据结构 堆

手写堆&#xff0c;而非stl中的堆 如何手写一个堆&#xff1f; //将数组建成堆 <O(n) for (int i n / 2;i;i--) //从n/2开始down down(i); 从n/2元素开始down&#xff0c;最下面一层元素的个数是n/2&#xff0c;其余上面的元素的个数是n/2&#xff0c;从最下面一层到最高层…...

将 ONLYOFFICE 文档编辑器与 Node.js 应用集成

我们来了解下&#xff0c;如何将 ONLYOFFICE 文档编辑器与您的 Web 应用集成。 许多 Web 应用都可以从文档编辑功能中获益。但是要从头开始创建这个功能&#xff0c;需要花费大量时间和精力。幸运的是&#xff0c;您可以使用 ONLYOFFICE——这是一款开源办公套件&#xff0c;可…...

CentOS 7搭建Gitlab流程

目录 1、查询docker镜像gitlab-ce 2、拉取镜像 3、查询已下载的镜像 4、新建gitlab文件夹 5、在gitlab文件夹下新建相关文件夹 6、创建运行gitlab的容器 7、查看docker容器 8、根据Linux地址访问gitlab 9、进入docker容器&#xff0c;设置用户名的和密码 10、登录git…...

Idea安装完成配置

目录&#xff1a; 环境配置Java配置Maven配置Git配置 基础设置编码级设置File Header自动生成序列化编号配置 插件安装MyBtisPlusRestfulTooklkit-fix 环境配置 Java配置 Idea右上方&#xff0c;找到Project Settings. 有些版本直接有&#xff0c;有些是在设置下的二级菜单下…...

超详细~25考研规划~感恩现在努力的你!!!

25考研规划 俄语&#xff0c;翻译过来叫我爱你 考试时间 第一天 8.30-11.30政治——100分 2.00-5.00英语——100分 第二天 8.30-11.30数学——150分 2.00-5.00专业课——150分 1.什么是25考研 将在2024年12月参加考研&#xff0c;2025年本科毕业&#xff0c;9月读研究…...

智慧城市安全监控的新利器

在传统的城市管理中&#xff0c;井盖的监控一直是一个难题&#xff0c;而井盖异动传感器的出现为这一问题提供了有效的解决方案。它具有体积小、重量轻、安装方便等特点&#xff0c;可以灵活地应用于各种类型的井盖&#xff0c;实现对城市基础设施的全方位监控。 智能井盖监测终…...

【算法】石子合并(区间dp)

题目 设有 N 堆石子排成一排&#xff0c;其编号为 1,2,3,…,N。 每堆石子有一定的质量&#xff0c;可以用一个整数来描述&#xff0c;现在要将这 N 堆石子合并成为一堆。 每次只能合并相邻的两堆&#xff0c;合并的代价为这两堆石子的质量之和&#xff0c;合并后与这两堆石子…...

C++-特殊类和单例模式

1.请设计一个类&#xff0c;不能被拷贝 拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 //该类不能发生拷贝class NonCopy{public:NonCopy(const NonCopy& Nc) delete;NonCopy&…...

【开源】基于Vue.js的智能教学资源库系统

项目编号&#xff1a; S 050 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S050&#xff0c;文末获取源码。} 项目编号&#xff1a;S050&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…...

C语言之qsort()函数的模拟实现

C语言之qsort()函数的模拟实现 文章目录 C语言之qsort()函数的模拟实现1. 简介2. 冒泡排序3. 对冒泡排序进行改造4. 改造部分4.1 保留部分的冒泡排序4.2 比较部分4.3 交换部分 5. bubble_sort2完整代码6. 使用bubble_sort2来排序整型数组7. 使用bubble_sort2来排序结构体数组7.…...

数字化未来:实时云渲染在智慧城市中的创新应用

数字中国战略"是国家推动数字经济发展的战略框架。这个战略旨在加速数字化转型&#xff0c;推动信息技术在各个领域的应用&#xff0c;提高社会经济效益和人民生活质量。而智慧城市作为其中的重要一环&#xff0c;重要性不言而喻。 智慧城市是当今城市发展的热点和趋势&a…...

如何通过系统性抗体研发服务加速创新药物开发?

一、为何现代抗体药物研发需要系统性技术支撑&#xff1f;抗体药物作为生物制药领域的核心组成部分&#xff0c;在肿瘤、自身免疫疾病、神经系统疾病等重大疾病治疗中展现出革命性潜力。然而&#xff0c;从靶点验证到临床候选分子确立的研发过程充满复杂挑战&#xff1a;抗体分…...

Win10自带应用太多?3分钟教你用PowerShell精准卸载(附常用应用命令大全)

Win10系统精简指南&#xff1a;PowerShell精准卸载内置应用全攻略 每次打开开始菜单&#xff0c;那些从未使用过的内置应用图标是否让您感到烦躁&#xff1f;作为技术从业者&#xff0c;我们更希望拥有一个干净高效的工作环境。本文将带您深入探索PowerShell在Windows系统管理中…...

SQLCoder多语言测试:日文与德文SQL生成的终极指南

SQLCoder多语言测试&#xff1a;日文与德文SQL生成的终极指南 【免费下载链接】sqlcoder 项目地址: https://ai.gitcode.com/hf_mirrors/defog/sqlcoder SQLCoder是一款强大的AI SQL生成工具&#xff0c;能够根据自然语言问题自动生成准确的SQL查询语句。本文将深入探讨…...

告别重复劳动:用快马平台生成你的专属工作流自动化agent

今天想和大家分享一个提升工作效率的小技巧——用自动化agent框架处理那些重复又繁琐的工作流程。作为一个经常要组织会议的程序员&#xff0c;我发现自己每天要花大量时间做同样的事情&#xff1a;从聊天记录里提取会议信息、手动创建日历事件、再给参会人发邮件通知。直到发现…...

Phi-4-mini-reasoning保姆级教学:Windows WSL2环境部署全流程

Phi-4-mini-reasoning保姆级教学&#xff1a;Windows WSL2环境部署全流程 1. 模型介绍 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型&#xff0c;专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这个模型主打"小参数、强推理、长上下文、低延迟"的…...

高速公路能耗管理系统方案

对高速公路运营商来说&#xff0c;面对隧道、收费站、服务区等各类站点&#xff0c;仅仅了解电力公司的缴费数据是不够的。由于缺乏用能过程的明细数据&#xff0c;无法进行有效的能耗分析和成本分析&#xff0c;导致节能策略无从实施&#xff0c;影响到企业的经营效益。现场已…...

汇川PLC与IS620N伺服驱动实战:手把手教你完成EtherCAT网络配置与电机命名

汇川PLC与IS620N伺服驱动深度配置指南&#xff1a;从EtherCAT组态到电机精准控制 在工业自动化领域&#xff0c;伺服系统的稳定性和响应速度直接决定了设备性能的上限。汇川AM600系列PLC搭配IS620N伺服驱动组成的EtherCAT网络&#xff0c;正成为越来越多自动化工程师的首选方案…...

Git 批量拉取所有远程分支到本地(Git Bash + CMD 双版本)

在使用 Git 开发时&#xff0c;经常需要将远程所有分支一次性拉取到本地&#xff0c;避免手动逐个创建。下面分别给出 Git Bash 和 Windows CMD 下的一键批量拉取脚本。一、Git Bash 脚本&#xff08;适用于 Git Bash / Linux /macOS&#xff09;bash运行git fetch originfor b…...

Pixel Epic · Wisdom Terminal 处理403 Forbidden等HTTP错误:智能诊断与修复建议

Pixel Epic Wisdom Terminal 处理403 Forbidden等HTTP错误&#xff1a;智能诊断与修复建议 1. 引言&#xff1a;HTTP错误的困扰与解决方案 每个Web开发者和运维人员都遇到过这样的场景&#xff1a;用户反馈页面打不开&#xff0c;你打开开发者工具一看&#xff0c;赫然显示4…...

别再手动输路径了!用VS Code Remote-WSL一键直达Ubuntu 20.04的home目录

极速直达WSL开发环境&#xff1a;VS Code高效工作流全指南 每次在Windows和WSL之间来回切换路径&#xff0c;就像在两个平行宇宙间手动搭建桥梁。作为深度使用WSL的开发者&#xff0c;我经历过无数次在资源管理器地址栏手输\\wsl$的痛苦&#xff0c;也曾在终端反复cd到项目目录…...