• 作者:老汪软件技巧
  • 发表时间:2024-01-01 08:00
  • 浏览量:

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言 一、力扣739. 每日温度

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        int[] res = new int[temperatures.length];
        Deque deq = new ArrayDeque<>();
        deq.offerLast(0);
        for(int i = 1; i < res.length; i ++){
            if(temperatures[i] <= temperatures[deq.peekLast()]){
                deq.offerLast(i);
            }else{
                while(!deq.isEmpty()&&temperatures[i] > temperatures[deq.peekLast()]){
                    int index = deq.pollLast();
                    res[index] = i - index;
                }
                deq.offerLast(i);
            }
        }
        return res;
    }
}

二、力扣496. 下一个更大元素 I

class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        int[] res = new int[nums1.length];
        Arrays.fill(res, -1);
        Deque deq = new ArrayDeque<>();
        Map map = new HashMap<>();
        for(int i = 0; i < nums1.length; i ++){
            map.put(nums1[i],i);
        }
        deq.offerLast(0);
        for(int i = 1; i < nums2.length; i ++){
            if(nums2[i] <= nums2[deq.peekLast()]){
                deq.offerLast(i);
            }else{
                while(!deq.isEmpty() && nums2[i] > nums2[deq.peekLast()]){
                    int index = deq.pollLast();
                    if(map.containsKey(nums2[index])){
                        int value = map.get(nums2[index]);
                        res[value] = nums2[i];
                    }
                }
                deq.offerLast(i);
            }
        }
        return res;
    }
}

上一个接口自动化测试 —— 工具、请求与响应

下一个【每日一题】找出数组的串联值

相关文章