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

力扣1546. 和为目标值且不重叠的非空子数组的最大数目

在这里插入图片描述
根据数据范围和题意可知,应该用前缀和+哈希,这一题和之前写的一道十分类似也可以说是之前那一道题的弱化版,是我在写1477那道题最初的思路:

力扣1477. 找两个和为目标值且不重叠的子数组

本题不用像lc1477那样整一个dp表,而是直接用一个变量保存上一个子数组的末尾last,再用新枚举到的子数组的开始位置与last比较,判断它们是不是重叠即可,如果不重叠就ans++,实际上这是一种贪心的思想

class Solution {
public:int sum[100005];
unordered_map<int,int> mp;int maxNonOverlapping(vector<int>& nums, int target) {for(int i=0;i<nums.size();i++){sum[i+1]=sum[i]+nums[i];}mp[0]=0;int last=-1;int ans=0;//sum[j+1]-sum[i]=targetfor(int j=0;j<nums.size();j++){if(mp.count(sum[j+1]-target)){int start=mp[sum[j+1]-target]+1;if(start>last){ans++;last=j+1;}}mp[sum[j+1]]=j+1;}return ans;}
};

时间复杂度O(n).

http://www.lqws.cn/news/470575.html

相关文章:

  • 1. 常见K线组合
  • 【STM32笔记】F1F4 STM32初识、MDK调试、HAL简介
  • 3.10 坐标导航
  • C++ 函数模板
  • 【基础算法】贪心 (一) :简单贪心
  • JavaWeb后端部分
  • win2003_ddk.3790里面有windbg--6.1.0017.2----备忘
  • 【环境配置】在Ubuntu Server上安装5090 PyTorch环境
  • Python 正确重载运算符(增量赋值运算符)
  • C++重点知识详解(命名空间,缺省参数,函数重载)
  • 【舞蹈】编排:如何对齐拍子并让小节倍数随BPM递减
  • 两个python独立进程通信
  • Kubernetes 节点故障自愈方案:结合 Node Problem Detector 与自动化脚本
  • Java面试题025:一文深入了解数据库Redis(1)
  • 自定义 Hook:在 Vue3 中复用逻辑
  • Vue3 + TypeScript + xlsx 导入excel文件追踪数据流转详细记录(从原文件到目标数据)
  • Vue+spring boot前后端分离项目搭建---小白入门
  • 2025云服务器磁盘空间告急全解析:日志管理策略与智能扩容方案
  • 98. 验证二叉搜索树
  • Redis哨兵模式的学习(三)
  • React JSX语法
  • Hologres 使用 FDW
  • 「Linux文件及目录管理」输入输出重定向与管道
  • 网络编程及原理(六):三次握手、四次挥手
  • 什么是跨域问题?后端如何解决跨域问题?
  • 基于FPGA的白噪声信号发生器verilog实现,包含testbench和开发板硬件测试
  • ffmpeg(六):图片与视频互转命令
  • Python编程语言:2025年AI浪潮下的技术统治与学习红利
  • python的校园兼职系统
  • 分享两个可以一键生成sql server数据库 html格式巡检报告的脚本