力扣1499.满足不等式的最大值

力扣1499.满足不等式的最大值

  • 双端单调队列

    • 将原式变形为 xj + yj + yi - xi
    • 枚举j ,问题变为求i<j的yi - xi的最大值
    • 有限制条件xi ≥ xj−k
    • 单调队列储存二元组(x,y-x)
cpp 复制代码
  class Solution {
  public:
      int findMaxValueOfEquation(vector<vector<int>>& points, int k) {
          int ans = INT_MIN;
          deque<pair<int,int>> q;
          for(auto &p:points)
          {
              int x = p[0],y = p[1];
              //如果队头元素的x不满足条件了
              while(!q.empty() && q.front().first < x - k)
                  q.pop_front();
              //如果还有满足条件的,取队头的最大值
              if(!q.empty())
                  ans = max(ans,x + y + q.front().second);
              //如果队尾元素比当前的小,之前弹掉
              while(!q.empty() && q.back().second <= y - x)
                  q.pop_back();
              q.emplace_back(x,y-x);
          }
          return ans;
      }
  };
相关推荐
fashion 道格3 分钟前
从地图导航到数据结构:解锁带权有向图的邻接链表奥秘
c语言·数据结构·链表
2401_893326627 分钟前
力扣1971.寻找图中是否存在路径
算法·leetcode·职场和发展
专注API从业者10 分钟前
构建分布式京东商品数据采集器:基于微服务的架构设计与实现
数据结构·数据库·分布式·微服务·架构
zs宝来了16 分钟前
HOT100-技巧类型题
数据结构·算法
Ayanami_Reii16 分钟前
进阶数据结构-FenwickTree
数据结构·算法·树状数组·fenwick tree
爪哇部落算法小助手22 分钟前
每日两题day59
数据结构·c++·算法
Brduino脑机接口技术答疑31 分钟前
脑机接口数据处理连载(二) 数据源头解析:脑电信号的采集原理与数据特性
人工智能·python·算法·数据分析·脑机接口
吃着火锅x唱着歌37 分钟前
LeetCode 1010.总持续时间可被60整除的歌曲
算法·leetcode·职场和发展
风筝在晴天搁浅37 分钟前
代码随想录 198.打家劫舍
算法
py有趣44 分钟前
LeetCode算法学习之旋转矩阵
学习·算法·leetcode