文章目录

  • 题目分析
  • 题目链接

题目分析

1。数组中没有负数意味着什么?意味着区间越大,其和越大。
2. 对于给定下标i,其左边的一个区间满足没有重复数的左边界(最左边)下标为j,我们有,随着i右移,坐标j也会单调右移。 因此可以使用双指针来做!
3. 还有一个问题:如何快速判断一个区间内有没有重复数?可以开一个hash table ,记录每个数出现多少次,如果下标i的数加进来之后,发现hash table里的值大于1,说明出现重复数,而且重复的一定是下标为i的这个数。 此时,我们就让左边界的指针j一直往后走,直到下标i这个数不重复为止

ac代码
时间复杂度O(n)

class Solution {public:int maximumUniqueSubarray(vector<int>& nums) {int res=0;//最终的区间和unordered_map<int,int> hash; //记录元素出现的次数int s=0;//遍历过程中使用的区间和for(int i=0,j=0; i<nums.size();i++){int x=nums[i];hash[x]++; //出现次数++s+=x;while(hash[x]>1){//左指针一直右移,直到x不再重复为止s-=nums[j]; //由于左指针右移,区间和需要减去相应的元素hash[nums[j]]--; //元素个数也要减少j++;}res=max(res,s); //不同的右指针i 都要确定一个最大值}return res;}
};

题目链接

Leetcode1695. 删除子数组的最大得分

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

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

    文章目录 1. 题目 2. 解题 1. 题目 给你一个正整数数组 nums ,请你从中删除一个含有 若干不同元素 的子数组. 删除子数组的 得分 就是子数组各元素之 和 . 返回 只删除一个 子数组可 ...

  2. 牛客题霸 [连续子数组的最大和] C++题解/答案

    牛客题霸 [连续子数组的最大和] C++题解/答案 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和 ...

  3. Leetcode5634. 删除子字符串的最大得分[C++题解]:贪心

    文章目录 题目 题目链接 题目 样例 字符串可以分成很多段,[ ab的组合].其他字母.[ab的组合].其他字母这样很多段,样例就是 cd[b]c[bbaaabab]可以拆成ab的组合和其他字母. 对 ...

  4. leetcode209. 长度最小的子数组 借这个题规范一下双指针写法

    给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums = [2, ...

  5. 程序员面试题精选100题(03)-子数组的最大和[算法]

    题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, ...

  6. 560. 和为K的子数组 974. 和可被 K 整除的子数组 (哈希表)

    引言 这两道题非常相似,也是对哈希表运用的考察,两道题合到一起总结一下 560. 和为K的子数组 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数. 示例 1 : 输入 ...

  7. 算法--三种方法求连续子数组的最大和

    这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典. 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  8. 程序员面试100题之九:求子数组的最大和

    题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, ...

  9. LeetCode 2104. 子数组范围和(单调栈)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 nums .nums 中,子数组的 范围 是子数组中最大元素和最小元素的差值. 返回 nums 中 所有 子数组范围的 和 . 子数组是 ...

最新文章

  1. windows 7装IIS
  2. 某电世界------青龙面板
  3. python程序实例源代码-python下10个简单实例代码
  4. 用神经网络分类连续与离散
  5. access开发精要(15)-货币与数字类型格式(3)
  6. wndows程序设计之书籍知识与代码摘录-封装一个类似printf的messagebox
  7. ant编译web项目
  8. 计算机管理档案有什么好处,利用资料管理系统管理档案有什么好处
  9. php form表单属性,HTML5 表单属性
  10. 安装配置远程工具Xmanager
  11. 三.Mybatis 多对一与一对多
  12. AndroidDeveloper Weekly NO.4
  13. legend2---开发日志4(常用的链接传值方式有哪些)
  14. 大文件如何传输到服务器,大文件如何快速传输到云服务器
  15. Python向数据库表格里插入万级数据
  16. MySQL导出记录到Excel表格下载打开后乱码问题
  17. java将汉字字符串转换为拼音(包含多音字)
  18. UVALive - 4487 HDU3234 UVA12232 【带权并查集】 非常好的一道题!!!
  19. 华为服务器开虚拟化,华为服务器虚拟化的随笔
  20. Android水纹波浪动画

热门文章

  1. J20170521-ts
  2. Struts2国际化文件乱码解决
  3. 解决ECSHOP后台订单里面点击编辑配送方式时出现的警告问题
  4. 利用partial快乐驱动开发
  5. excel 粘贴到web_最新技术让excel秒变web数据库
  6. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-第3章-系统性能分析
  7. 【控制】《自动控制原理》胡寿松老师-第7章-线性离散系统的分析与校正
  8. 3.10 候选区域-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  9. 【SNN脉冲神经网络】SNN脉冲神经网络的工作原理演示MATLAB仿真带GUI界面
  10. 【DA算法】基于DA算法的FIR滤波器的FPGA实现