提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、力扣739. 每日温度
class Solution {
public int[] dailyTemperatures(int[] temperatures) {
int n = temperatures.length;
int[] answer = new int[n];
Deque<Integer> deq = new LinkedList<>();
deq.push(0);
for(int i=1; i < n; i ++){
if(temperatures[i] <= temperatures[deq.peek()]){
deq.push(i);
}else {
while(!deq.isEmpty() && temperatures[i]>temperatures[deq.peek()]){
answer[deq.peek()] = i - deq.peek();
deq.pop();
}
deq.push(i);
}
}
return answer;
}
}
二、力扣496.下一个更大元素 I
class Solution {
public int[] nextGreaterElement(int[] nums1, int[] nums2) {
int n1 = nums1.length;
int n2 = nums2.length;
int[] ans = new int[n1];
Arrays.fill(ans, -1);
Deque<Integer> deq = new LinkedList<>();
HashMap<Integer, Integer> hashMap = new HashMap<>();
deq.push(nums2[0]);
for(int i = 0; i < n1; i ++){
hashMap.put(nums1[i], i);
}
for(int j = 1; j < n2; j ++){
if(nums2[j] <= deq.peek()){
deq.push(nums2[j]);
}else{
while(!deq.isEmpty() && nums2[j] > deq.peek()){
if(hashMap.containsKey(deq.peek())){
int index = hashMap.get(deq.peek());
ans[index] = nums2[j];
}
deq.pop();
}
deq.push(nums2[j]);
}
}
return ans;
}
881

被折叠的 条评论
为什么被折叠?



