2023年2月15日 星期三

739. Daily Temperatures

解題思路

用 stack 紀錄還沒找到 warmer 的日子。用 pair 同時保有日期跟溫度。

pair 用法:

pair<type, type> p;

p.first = ???, p.second = ???

make_pair(???, ???);

程式碼

class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        vector<int> ans(temperatures.size(), 0);
        stack<pair<int, int>> st; // stack for pair(temp, index)

        for(int i=0; i<temperatures.size(); i++)
        {
            while(!st.empty() && st.top().first < temperatures[i])
            {
                ans[st.top().second] = i - st.top().second;
                st.pop();
            }
            st.push(make_pair(temperatures[i], i));
        }
        return ans;
    }
};

沒有留言:

張貼留言