Leetcode 1477. 找两个和为目标值且不重叠的子数组 前缀和+DP

server/2025/3/6 10:40:34/

原题链接: Leetcode 1477. 找两个和为目标值且不重叠的子数组

在这里插入图片描述
在这里插入图片描述

class Solution {
public:int minSumOfLengths(vector<int>& arr, int target) {int n=arr.size();int sum=0;int maxn=INT_MAX;vector<int> dp(n,maxn);//dp[i]表示以索引i之前的满足要求的子数组的长度的最小值map<int,int> mp;//mp[num]=i,表示从0到i,前缀和为nummp[0]=-1;//初始时int res=maxn;for(int i=0;i<n;i++){sum+=arr[i];if(i>0) dp[i]=dp[i-1];if(mp.count(sum - target)){int cur_len=i-mp[sum-target];int left_index=mp[sum-target];if(left_index>=0 && dp[left_index]!=INT_MAX){res=min(res,dp[left_index]+cur_len);}if(i==0) dp[i]=min(maxn,cur_len);else dp[i]=min(dp[i-1],cur_len);}mp[sum]=i;}if(res==maxn) return -1;return res;}
};

http://www.ppmy.cn/server/172845.html

相关文章

JavaScript 数组和字符串方法详解

一、数组方法 数组方法是操作数组的核心工具&#xff0c;分为修改原数组和返回新数组两类。 1. 常用修改原数组的方法 方法参数返回值说明示例push...items新长度末尾添加元素arr.push(4) → [1,2,3,4]pop无删除的元素删除最后一个元素arr.pop() → 3&#xff08;原数组变[1,…

java基础100道面试题

一、Java基础概念 1. Java的三大特性是什么&#xff1f;解释其含义。 Java的三大特性是封装、继承和多态&#xff1a; 封装&#xff08;Encapsulation&#xff09;&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;形成一个类。通过访问…

[51 单片机] --串口编程

1&#xff0c;通讯方式基本概念 1&#xff0c;按照 --> 数据传送方式串行通讯&#xff1a;使用一条数据线&#xff0c;将数据一位一位地依次传输&#xff0c;每一位数据占据一个固定的时间长度&#xff0c;串行通信的特点&#xff1a;传输线少&#xff0c;长距离传送时成本…

C++并发以及多线程的秘密

1.基础概念 并发&#xff08;Concurrency&#xff09; 并发是指在同一时间段内&#xff0c;多个任务看起来像是同时执行的。并发并不一定意味着真正的同时执行&#xff0c;它可以是通过时间片轮转等方式在多个任务之间快速切换&#xff0c;让用户感觉多个任务在同时进行。并发…

SQL经典题型

查询不在表里的数据&#xff0c;一张学生表&#xff0c;一张学生的选课表&#xff0c;要求查出没有选课的学生&#xff1f; select students.student_name from students left join course_selection on students.student_idcourse_selection.student_id where course_selecti…

如何将飞书多维表格与DeepSeek R1结合使用:效率提升的完美搭档

将飞书的多维表格与DeepSeek R1结合使用&#xff0c;就像为你的数据管理和分析之旅装上一台涡轮增压器。两者的合作&#xff0c;不仅仅在速度上让人耳目一新&#xff0c;更是将智能化分析带入了日常的工作场景。以下是它们如何相辅相成并改变我们工作方式的一些分享。 --- 在…

Linux:vim快捷键

Linux打开vim默认第一个模式是&#xff1a;命令模式&#xff01; 命令模式快捷键操作&#xff1a; gg&#xff1a;光标快速定位到最开始 shift g G&#xff1a;光标快速定位到最结尾 n shift g n G&#xff1a;光标快速定位到第n行 shift 6 ^&#xff1a;当前行开始 …

NUMA架构介绍

NUMA 架构详解 NUMA&#xff08;Non-Uniform Memory Access&#xff0c;非统一内存访问&#xff09; 是一种多处理器系统的内存设计架构&#xff0c;旨在解决多处理器系统中内存访问延迟不一致的问题。与传统的 UMA&#xff08;Uniform Memory Access&#xff0c;统一内存访问…