LeetCode-0523

news/2024/11/7 18:28:45/

1047. 删除字符串中的所有相邻重复项(简单)

class Solution {public String removeDuplicates(String s) {Stack<Character> sta = new Stack<>();for(int i=0;i<s.length();i++){char tp = s.charAt(i);if(!sta.isEmpty()&&tp==sta.peek()){sta.pop();continue;}sta.push(tp);}String res = "";while(!sta.isEmpty()){res = sta.pop()+res;}return res;}
}

150. 逆波兰表达式求值(中等)

class Solution {public int evalRPN(String[] tokens) {Stack<Integer> sta = new Stack<>();for(int i=0;i<tokens.length;i++){if(tokens[i].equals("+")||tokens[i].equals("-")||tokens[i].equals("/")||tokens[i].equals("*")){int b = sta.pop();int a = sta.pop();sta.push(calculate(a,b,tokens[i]));}else {sta.push(Integer.parseInt(tokens[i]));}}return sta.pop();}int calculate(int a,int b,String op){if(op.equals("/"))return a/b;else if(op.equals("+"))return a+b;else if(op.equals("-"))return a-b;else return a*b;}
}

239. 滑动窗口最大值(困难)

思路:1.单调队列 2.堆+集合

//	单调队列
class Solution {public int[] maxSlidingWindow(int[] nums, int k) {MonQueue mque = new MonQueue();int len = nums.length;int res[] = new int[len-k+1];for(int i=0;i<len;i++){if(i>=k&&mque.peek()==nums[i-k])mque.poll();mque.add(nums[i]);if(i>=k-1){res[i-k+1] = mque.peek();}}return res;}//	单调队列class MonQueue{Deque<Integer> deque;public MonQueue(){deque = new LinkedList<>();}public void add(int num){while(!deque.isEmpty()&&deque.getLast()<num){deque.removeLast();}deque.add(num);}public int poll(){return deque.poll();}public int peek(){return deque.peek();}}
}
//	堆+集合
class Solution {public int[] maxSlidingWindow(int[] nums, int k) {Map<Integer,Integer> iset = new HashMap<>();Queue<Integer> heap = new PriorityQueue<>(Collections.reverseOrder());int len = nums.length;int res[] = new int[len-k+1];for(int i=0;i<len;i++){if(i>=k){int cnt = iset.get(nums[i-k]);if(--cnt<=0)iset.remove(nums[i-k]);else iset.put(nums[i-k],cnt);}int cnt = 0;if(iset.containsKey(nums[i]))cnt = iset.get(nums[i]);iset.put(nums[i],cnt+1);heap.add(nums[i]);if(i>=k-1){while(!iset.containsKey(heap.peek())){heap.poll();}res[i-k+1] = heap.peek();}}return res;}
}

单调队列

//	单调队列class MonQueue{Deque<Integer> deque;public MonQueue(){deque = new LinkedList<>();}public void add(int num){while(!deque.isEmpty()&&deque.getLast()<num){deque.removeLast();}deque.add(num);}public int poll(){return deque.poll();}public int peek(){return deque.peek();}}

http://www.ppmy.cn/news/74427.html

相关文章

从裸机启动开始运行一个C++程序(三)

先序文章请看 从裸机启动开始运行一个C程序&#xff08;二&#xff09; 从裸机启动开始运行一个C程序&#xff08;一&#xff09; 编写MBR 上一章我们已经成功地在8086上运行了指令&#xff0c;同时也介绍了nasm汇编语言。那么接下来这一章&#xff0c;我们就来看看如何写BIO…

宜搭低代码开发师(高级)「FaaS连接器加解密系统」操作步骤(亲测OK)

目录 目标: 步骤: 一、FaaS连接器 二、页面步骤介绍 目标: 轻松搞定高级认证!!! 步骤: 提示&#

单循环比赛

固定轮转编排法 固定轮转法也叫常规轮转法&#xff0c;是我国传统的编排方法。它以左边第一号固定不动&#xff0c;逆时针转动&#xff0c;逐一排出。 public function fixedRotation(){$teamlist [1, 2, 3, 4, 5,6, 0];//参赛的各队$len count($teamlist);for ($i 1; $i &l…

weblogic CVE-2014-4210 SSRF漏洞

CVE-2014-4210 SSRF漏洞 Weblogic 中存在一个SSRF漏洞&#xff0c;利用该漏洞可以发送任意HTTP请求&#xff0c;进而可以攻击内网中Redis、Fastcgi等脆弱组件 该漏洞存在于/uddiexplorer/SearchPublicRegistries.jsp SSRF&#xff1a;服务端请求伪造&#xff0c;伪造存在该漏洞…

SpringBoot开发实用篇1

一、热部署 1.手工启动热部署 经过测试当前是没有启动热部署的&#xff1a; 再将sout的信息多复制几份&#xff0c;刷新功能&#xff0c;发现控制台还是只打印一行信息。说明当前热部署是没有生效的。 手动开启热部署&#xff1a; 在pom.xml文件中加入开发者工具配置热部署…

组合预测模型 | ARIMA-CNN-LSTM时间序列预测(Python)

组合预测模型 | ARIMA-CNN-LSTM时间序列预测&#xff08;Python&#xff09; 目录 组合预测模型 | ARIMA-CNN-LSTM时间序列预测&#xff08;Python&#xff09;预测结果基本介绍程序设计参考资料 预测结果 基本介绍 ARIMA-CNN-LSTM是一种结合了传统时间序列模型和深度学习模型的…

OPPO哲库事件 “ 始末 ” ! 集体打哑谜?

1►OPPO哲库解散 2019 年&#xff0c;美国商务部以“科技网络安全”为由&#xff0c;将华为公司及其70家附属公司列入出口管制“实体名单”。与此同时&#xff0c;OPPO 创始人兼 CEO陈明永对外宣布&#xff0c;公司将为未来三年内投入 500 亿元用于前沿技术和深水区技术的探索…

交错网格与完全匹配层:提升波场模拟效果的双剑合璧

目录 交错网格&#xff08;Staggered Grid&#xff09; 完全匹配层&#xff08;Perfectly Matched Layer&#xff09; 大家好&#xff0c;欢迎来到这次的博客文章。今天我们将介绍在波场模拟中应用的两个关键技术&#xff1a;交错网格&#xff08;Staggered Grid&#xff09;…