力扣3026.最大好子数组和

力扣3026.最大好子数组和

  • 一次遍历

    • 求前缀和的同时 哈希表key为元素值 value为前缀和
    • 始终保证cnt[key]的前缀和最小
cpp 复制代码
  class Solution {
  public:
      long long maximumSubarraySum(vector<int>& nums, int k) {
          long long res = LLONG_MIN , sum = 0;
          unordered_map<int,long long> min_s;
          for(int x : nums)
          {
              //找x + k的位置
              auto it = min_s.find(x + k);
              if(it != min_s.end())
                  res = max(res,sum + x - it->second);
              //找x - k的位置
              it = min_s.find(x - k);
              if(it != min_s.end())
                  res = max(res,sum + x - it->second);
              //找x的位置
              it = min_s.find(x);
              if(it == min_s.end() || sum < it->second)
                  min_s[x] = sum;
              //求当前遍历过元素的和
              sum += x;
          }
          return res == LLONG_MIN ? 0 : res;
      }
  };
相关推荐
a努力。5 分钟前
国家电网Java面试被问:最小生成树的Kruskal和Prim算法
java·后端·算法·postgresql·面试·linq
洛生&11 分钟前
Counting Towers
算法
Evand J20 分钟前
【MATLAB例程,附代码下载链接】基于累积概率的三维轨迹,概率计算与定位,由轨迹匹配和滤波带来高精度位置,带测试结果演示
开发语言·算法·matlab·csdn·轨迹匹配·候选轨迹·完整代码
X在敲AI代码23 分钟前
LeetCode 基础刷题D2
算法·leetcode·职场和发展
源代码•宸27 分钟前
Leetcode—1929. 数组串联&&Q1. 数组串联【简单】
经验分享·后端·算法·leetcode·go
数据大魔方38 分钟前
【期货量化实战】跨期套利策略:价差交易完整指南(TqSdk源码详解)
数据库·python·算法·github·程序员创富
weixin_4617694039 分钟前
15. 三数之和
c++·算法·leetcode·三数之和
NAGNIP41 分钟前
一文搞懂机器学习中的学习理论!
算法·面试
Evand J1 小时前
【MATLAB代码介绍】基于累积概率的三维轨迹匹配与定位,由轨迹匹配和卡尔曼滤波形成算法,带测试结果演示
算法·matlab·滤波·定位·导航·轨迹匹配
l1t1 小时前
NineData第三届数据库编程大赛:用一条 SQL 解数独问题我的参赛程序
数据库·人工智能·sql·算法·postgresql·oracle·数独