Skip to content

Latest commit

 

History

History
33 lines (27 loc) · 1013 Bytes

File metadata and controls

33 lines (27 loc) · 1013 Bytes

LeetCode Records - Question 739 Daily Temperatures

Attempt 1: Use a PriorityQueue to store the previous temperature and its index

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        int[] ans = new int[temperatures.length];
        PriorityQueue<int[]> priorityQueue = new PriorityQueue<>((t1, t2) -> t1[0] - t2[0]);

        for (int i = 0; i < temperatures.length; i++) {
            int[] itemInQueue = priorityQueue.peek();
            while (itemInQueue != null) {
                if (temperatures[i] > itemInQueue[0]) {
                    ans[itemInQueue[1]] = i - itemInQueue[1];
                    priorityQueue.poll();
                } else {
                    break;
                }

                itemInQueue = priorityQueue.peek();
            }

            priorityQueue.add(new int[]{ temperatures[i], i });
        }

        return ans;
    }
}
  • Runtime: 74 ms (Beats: 33.61%)
  • Memory: 56.01 MB (Beats: 97.77%)