From a1caf8fe22b0a2bb563eac4bae694040b906f27a Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Fri, 29 Nov 2024 16:29:29 +0800 Subject: [PATCH] =?UTF-8?q?2024/11/29=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 --- .../com/cool/ling_cha_mount/stack/Num901.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/cool/ling_cha_mount/stack/Num901.java diff --git a/src/main/java/com/cool/ling_cha_mount/stack/Num901.java b/src/main/java/com/cool/ling_cha_mount/stack/Num901.java new file mode 100644 index 0000000..3a06b39 --- /dev/null +++ b/src/main/java/com/cool/ling_cha_mount/stack/Num901.java @@ -0,0 +1,46 @@ +package com.cool.ling_cha_mount.stack; + +import java.util.ArrayList; +import java.util.Deque; +import java.util.LinkedList; +import java.util.List; + +public class Num901 { + +} +class StockSpanner { + + Deque stack=new LinkedList<>(); + List list=new ArrayList<>(); + public StockSpanner() { + stack.push(-1); + } + + public int next(int price) { + list.add(price); + while(stack.peek()>0&&list.get(stack.peek())<=price){ + stack.pop(); + } + int res=list.size()-1-stack.peek(); + stack.push(list.size()-1); + return res; + } +} +class StockSpanner1 { + + Deque stack = new LinkedList<>(); + private int curDay = -1; + + public StockSpanner1() { + stack.push(new int[] { curDay, Integer.MAX_VALUE }); + } + + public int next(int price) { + while (price >= stack.peek()[1]) { + stack.pop(); + } + int res = (++curDay) - stack.peek()[0]; + stack.push(new int[] { curDay, price }); + return res; + } +}