文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个正整数数组 nums ,请你从中删除一个含有 若干不同元素子数组
删除子数组的 得分 就是子数组各元素之 和

返回 只删除一个 子数组可获得的 最大得分

如果数组 b 是数组 a 的一个连续子序列,即如果它等于 a[l],a[l+1],…,a[r] ,那么它就是 a 的一个子数组。

示例 1:
输入:nums = [4,2,4,5,6]
输出:17
解释:最优子数组是 [2,4,5,6]示例 2:
输入:nums = [5,2,1,2,5,2,1,2,5]
输出:8
解释:最优子数组是 [5,2,1] 或 [1,2,5]提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^4

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-erasure-value
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先计算前缀和,方便后面快速获取
  • 滑动窗口内的数字存入哈希set,如果当前数字在set中,则窗口左端点向右移动,直至左端点该数字出现
class Solution {public:int maximumUniqueSubarray(vector<int>& nums) {int ans = 0, i = 0, j = 0, n = nums.size();vector<int> presum(nums);for(int i = 1; i < n; i++) presum[i] += presum[i-1];//前缀和unordered_set<int> s;while(j < n){if(s.find(nums[j]) == s.end()){s.insert(nums[j]);}else//存在nums[j]{while(nums[i] != nums[j]){s.erase(nums[i++]);}i++;//左端点和nums[j]一样的数跳过了}ans = max(ans, i>0 ? presum[j]-presum[i-1] : presum[j]);j++;}return ans;}
};

720 ms 116.1 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1695. 删除子数组的最大得分(前缀和+哈希+双指针)相关推荐

  1. Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复

    文章目录 题目分析 题目链接 题目分析 1.数组中没有负数意味着什么?意味着区间越大,其和越大. 2. 对于给定下标i,其左边的一个区间满足没有重复数的左边界(最左边)下标为j,我们有,随着i右移,坐 ...

  2. LeetCode 1793. 好子数组的最大分数(单调栈)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 nums (下标从 0 开始)和一个整数 k . 一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i+1 ...

  3. LeetCode 918. 环形子数组的最大和(前缀和+单调队列)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和. 在此处,环形数组意味着数组的末端将会与开头相连呈环状. (形式上,当0 & ...

  4. LeetCode 1063. 有效子数组的数目(单调栈)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个整数数组 A,返回满足下面条件的 非空.连续 子数组的数目: 子数组中,最左侧的元素不大于其他元素. 示例 1: 输入:[1,4,2,5,3] 输 ...

  5. LeetCode 795. 区间子数组个数

    给定一个元素都是正整数的数组A ,正整数 L 以及 R (L <= R). 求连续.非空且其中最大元素满足大于等于L 小于等于R的子数组个数. 例如 : 输入: A = [2, 1, 4, 3] ...

  6. LeetCode动态规划 环形子数组的最大和

    给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和. 此外,子数组最多只能包含固定缓冲区 A 中的每个元素一次. 思路 本道题需要分类成两种情况,题目答案为以下两种情况的较大 ...

  7. 【LeetCode】643. 子数组最大平均数 I

    class Solution1 {/*643. 子数组最大平均数 I给你一个由 n 个元素组成的整数数组 nums 和一个整数 k .请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数 ...

  8. LeetCode 1717. 删除子字符串的最大得分

    文章目录 1. 题目 2. 解题 374 / 1631,前22.9% 1215 / 7873,前15.4% 1. 题目 给你一个字符串 s 和两个整数 x 和 y .你可以执行下面两种操作任意次. 删 ...

  9. LeetCode 1569. 将子数组重新排序得到同一个二叉查找树的方案数(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个数组 nums 表示 1 到 n 的一个排列. 我们按照元素在 nums 中的顺序依次插入一个初始为空的二叉查找树(BST). 请你统计将 num ...

最新文章

  1. 【云计算】3_云网络产品介绍
  2. 数字化转型升级,人才战略是核心
  3. 层模型--绝对定位、相对定位、固定定位
  4. layui关闭表格编辑_告别复制粘贴,表格再多也能快速合并!
  5. C#中使用资源文件保存图片和皮肤文件的使用
  6. 学习《Building Applications with FME Objects》 之四 从数据集读取要素
  7. 一个页面从输入URL到加载显示完成,发生了什么?
  8. 工作109:控制mode跳转
  9. 计算机的iscsi配置,我们将了解如何设置自己的支持iscsi配置的存储节点
  10. linux centos7杀进程,centos7 nginx 启动/进程状态/杀掉进程
  11. pointers on c (day 1,chapter3)
  12. 如何运用模板之家做html,Flask框架如何使用HTML模板
  13. android 右边抽屉,android – 抽屉在右侧抽屉中切换
  14. 工作周记 - 第四周 (2016/06/12 - 2016/06/18) 我没喝多,但是今天话多了 - -
  15. 【全套完结】数字电子技术基础——全套实验手册及仿真工艺实习【建议保存】
  16. rails kaminari text modify
  17. Vue打包优化篇-CDN加速
  18. 玄幻:我!收徒就变强!(三)
  19. DELPHI读取网页源文件和获取字符串
  20. 深度学习训练营之灵笼人物识别

热门文章

  1. 【后端开发】分析抖音后台架构
  2. 为什么shell脚本第一行要#!/bin/sh
  3. Python把函数作为参数传入的高阶编程方法
  4. 计算机最佳参数,对使用者来说,学会计算机性能参数提取,给出性能评价很重要...
  5. .net core EPPlus npoi_2020 ASP.NET界面开发:DevExpress v20.1支持.NET Core设计时
  6. windows API 串口编程参考
  7. linux 最强shell,最牛B 的 Linux Shell 命令(一)
  8. matlab穆尔,基于matlab(矩阵实验室)的倒立摆控制系统仿真(34页)-原创力文档
  9. 微型计算机频繁死机的原因,电脑经常死机是什么原因|电脑经常死机的解决方法...
  10. asp.net 开发注意的几点