福田皇岗社区做网站,网站config配置教程,美食制作网站模板免费下载,seo网站编辑文章目录 Leetcode 739. 每日温度解题思路代码总结 Leetcode 496.下一个更大元素 I解题思路代码总结 草稿图网站 java的Deque
Leetcode 739. 每日温度 题目#xff1a;739. 每日温度 解析#xff1a;代码随想录解析 解题思路
维护一个单调栈#xff0c;当新元素大于栈顶739. 每日温度 解析代码随想录解析 解题思路
维护一个单调栈当新元素大于栈顶就赋予栈顶对应的res的位置i-stack.peek()。
代码
//暴力剩一个样例无法通过
class Solution {public int[] dailyTemperatures(int[] temperatures) {int n temperatures.length;int []res new int[n];for (int i 0; i n-1; i) {for (int p 1; i p n; p) {if (temperatures[ip] temperatures[i]) {res[i] p;break;}}}return res;}
}//单调栈
class Solution {public int[] dailyTemperatures(int[] temperatures) {int n temperatures.length;int []res new int[n];StackInteger stack new Stack();for (int i 0; i n; i) {while (!stack.isEmpty() temperatures[i] temperatures[stack.peek()]) {res[stack.peek()] i - stack.peek();stack.pop();}stack.push(i);}return res;}
}总结
暂无
Leetcode 496.下一个更大元素 I 题目496.下一个更大元素 I 解析代码随想录解析 解题思路
使用HashMap来进行值到res的索引的对应维护一个单调栈。当HashMap中存在数的时候将后面第一个大于的数加入res中
代码
class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {MapInteger, Integer map new HashMap();for (int i 0; i nums1.length; i)map.put(nums1[i], i);int []res new int[nums1.length];Arrays.fill(res, -1);StackInteger stack new Stack();for (int i 0; i nums2.length; i) {while (!stack.isEmpty() nums2[i] nums2[stack.peek()]) {int preNum nums2[stack.peek()];if (map.containsKey(preNum)) {res[map.get(preNum)] nums2[i];}stack.pop();}stack.push(i);}return res;}
}总结
暂无