Leetcode1499满足不等式的最大值

问题分析

双端队列按照y-x的值从大到小组织,队列中存储点的编号。

如果y-x的值大于队列尾部元素的y-x值,则从尾部弹出元素。

如果当前点的x值与队列头部元素的x值之差大于k时,则从头部弹出元素。

求解代码

java 复制代码
public static int MAXN = 100001;
	public static int[][] deque = new int[MAXN][2];
	public static int h,t;

	public static int findMaxValueOfEquation(int[][] points,int k){
		h = t = 0;
		int n = points.length;
		int ans = Integer.MIN_VALUE;
		for(int i=0,x,y;i<n;i++){
			x=points[i][0];
			y=points[i][1];

			while (h<t&&deque[h][0]+k<x) {
				h++;
			}

			if(h<t){
				ans = Math.max(ans, x+y+deque[h][1]-deque[h][0]);
			}

			while (h<t&&deque[t-1][1]-deque[t-1][0]<=y-x) {
				t--;
			}

			deque[t][0]=x;
			deque[t++][1]=y;
		}
		return ans;
	}
相关推荐
JJay.10 分钟前
Android Kotlin 协程使用指南
android·开发语言·kotlin
csbysj202016 分钟前
jQuery 捕获详解
开发语言
木子欢儿18 分钟前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
C++ 老炮儿的技术栈25 分钟前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt
Devin~Y29 分钟前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
蜡台33 分钟前
IDEA 一些 使用配置和插件
java·ide·intellij-idea
三道渊1 小时前
进程通信与网络协议
开发语言·数据库·php
磊 子1 小时前
redis详解2
java·spring boot·redis
白露与泡影1 小时前
Java面试题库及答案解析(2026版)
java·开发语言·面试
疯狂成瘾者1 小时前
Chroma向量数据库
开发语言·数据库·c#