# 739. Daily Temperatures

[Link](https://leetcode.com/problems/daily-temperatures/)

**Solution**

幾個重點要想到

為了要知道每個元素左邊是否有溫度更高的存在，以及如果有間隔為多少天?

1\. 從左至右去尋訪

要能知道間隔多少天-> 要能知道什麼時候有更高的溫度，需要資料結構去儲存

2\. 由一個stack去紀錄之前的所有溫度，要放進去stack時，由於比目前的溫度小的植在stack中沒有意義，都刪除掉。因為後面的溫度可以直接找到目前的溫度是更高的溫度，所以不需要存放比目前溫度小的。

```java
  public int[] dailyTemperatures(int[] T) {
        int n = T.length;
        int[] result = new int[n];
        Stack<Integer> s = new Stack<>();
        for(int i = n-1; i >= 0; i--){
            int cur = T[i];
            while(!s.isEmpty() && T[s.peek()] <= cur) s.pop();
            
            result[i] = s.isEmpty()? 0 : s.peek() - i;
            
            s.push(i);
        }
        return result;
    }
```
