本文主要是介绍算法训练营第61天|LeetCode 739. 每日温度 496.下一个更大元素 I,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LeetCode 739. 每日温度
题目链接:
LeetCode 739. 每日温度
代码:
class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int>st;int size = temperatures.size();vector<int>result(size,0);if(size>0) st.push(0);for(int i=1;i<size;i++){if(temperatures[i]<=temperatures[st.top()]){st.push(i);}else{while(!st.empty()&&temperatures[i]>temperatures[st.top()]){result[st.top()] = i - st.top();st.pop();}st.push(i);}}return result;}
};
LeetCode 496.下一个更大元素 I
题目链接:
LeetCode 496.下一个更大元素 I
代码:
class Solution {
public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {int size = nums1.size();vector<int>result(size,-1);if(size==0) return result;unordered_map<int,int>umap;for(int i=0;i<size;i++){umap[nums1[i]] = i;}stack<int>st;st.push(0);for(int i=1;i<nums2.size();i++){if(nums2[i]<=nums2[st.top()]){st.push(i);}else{while (!st.empty() && nums2[i] > nums2[st.top()]) {if (umap.count(nums2[st.top()]) > 0) { // 看map里是否存在这个元素result[umap[nums2[st.top()]]] = nums2[i];}st.pop();}st.push(i);}}return result;}
};
这篇关于算法训练营第61天|LeetCode 739. 每日温度 496.下一个更大元素 I的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!