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

相关文章:

  • 【09】设计并实现一套面向 Agent 任务规划的 DSL 语言
  • 针对机器人自修复材料的具体推荐及特性分析
  • vscode搭建spring boot项目
  • Qt、C++自定义按钮、组件、事件编程开发练习,万字实战解析!!
  • TMultiplexedProtocol 和 TMultiplexedProcessor
  • 使用Vue3开发Electorn桌面应用
  • Maven-添加子模块
  • Vue2 day02
  • 记录一次:Java Web 项目 CSS 样式/图片丢失问题:一次深度排查与根源分析
  • 【STM32】STM32的中断系统寄存器NVIC、EXTI
  • Leetcode 440. 字典序的第K小数字
  • C++ CAN总线数据处理框架解析
  • 力扣1477. 找两个和为目标值且不重叠的子数组
  • YOLO官方自带的数据集Dotav1,直接训练
  • Python爬虫实战:研究threading相关技术
  • 状态模式详解
  • Filecoin系列 - IPLD 技术分析
  • verilog HDLBits刷题“Module shift8”--模块 shift8---模块和向量
  • Python 的内置函数 hasattr
  • 中国设计 全球审美 | 安贝斯新产品发布会:以东方美学开辟控制台仿生智造新纪元
  • 【Koa系列】10min快速入门Koa
  • 蓝牙 5.0 新特性全解析:传输距离与速度提升的底层逻辑(面试宝典版)
  • 项目开发中途遇到困难的解决方案
  • 深入解析BERT:语言分类任务的革命性引擎
  • 创业知识概论
  • tkinter Entry(输入框)组件学习指南
  • 加密货币:比特币
  • 5.3 LED字符设备驱动
  • HarmonyOS 6 + 盘古大模型5.5
  • 【Python】Excel表格操作:ISBN转条形码