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;
	}
相关推荐
wuyk555几秒前
Python 零基础入门第九章:用户输入与 While 循环
开发语言·python
兮动人4 分钟前
Python变量与常量
开发语言·python·机器学习·python变量与常量
CCYe、10 分钟前
新模型上线、旧模型下线:企业AI网关如何管住模型版本
java·网络·数据库·人工智能
风筝在晴天搁浅11 分钟前
解题代码清爽版
java·开发语言
NeverFear79213 分钟前
【黑马点评】短信登录
java·redis·tomcat·intellij-idea
Java后端的Ai之路19 分钟前
21、Python - 命令模式
开发语言·人工智能·python·命令模式·外观模式
astronautyi24 分钟前
Go 运行时内存分配与 GC 位图深度剖析
开发语言·后端·golang
techdashen31 分钟前
Go 中如何处理错误
开发语言·后端·golang
2601_962298671 小时前
正则表达式引擎 哪些
java·python·perl·pcre·正则表达式引擎
孙克旭_1 小时前
JVM 入门详解:JVM、JRE、JDK 区别,JVM 基础结构梳理
java·开发语言·jvm