From 61bf855b750c3b89c48dbba199653bd2926ab92e Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Sat, 30 Nov 2024 22:34:10 +0800 Subject: [PATCH] =?UTF-8?q?2024/11/30=20=E7=81=B5=E8=8C=B6=E9=A2=98?= =?UTF-8?q?=E5=8D=95=20=E5=8D=95=E8=B0=83=E6=A0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/ling_cha_mount/stack/Num1124.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/com/cool/ling_cha_mount/stack/Num1124.java diff --git a/src/main/java/com/cool/ling_cha_mount/stack/Num1124.java b/src/main/java/com/cool/ling_cha_mount/stack/Num1124.java new file mode 100644 index 0000000..ee3d258 --- /dev/null +++ b/src/main/java/com/cool/ling_cha_mount/stack/Num1124.java @@ -0,0 +1,25 @@ +package com.cool.ling_cha_mount.stack; + +import java.util.Deque; +import java.util.LinkedList; + +public class Num1124 { + public int longestWPI(int[] hours) { + int res = 0; + int[] arr = new int[hours.length + 1]; + Deque stack = new LinkedList<>(); + stack.push(0); + for (int i = 1; i <= hours.length; i++) { + arr[i] = arr[i - 1] + (hours[i - 1] > 8 ? 1 : -1); + if (arr[i] < arr[stack.peek()]) { + stack.push(i); + } + } + for (int i = hours.length; i > 0; i--) { + while (!stack.isEmpty() && arr[i] > arr[stack.peek()]) { + res = Math.max(res, i - stack.pop()); + } + } + return res; + } +}