做蛋糕哪个教程网站好,百度搜索排名,wordpress cache插件,seo自己做网站吗739. 每日温度#xff08;题目链接#xff1a;力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台#xff09;
思路#xff1a;新学习的单调栈做法#xff0c;实质就是用一个栈存储中间结果。在针对数组某个元素的结果没找出来之前#xff0c;将数…739. 每日温度题目链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台
思路新学习的单调栈做法实质就是用一个栈存储中间结果。在针对数组某个元素的结果没找出来之前将数组该元素的信息存入栈中找到结果后再从栈中删除该元素的信息。
vectorint dailyTemperatures(vectorint temperatures) {int size temperatures.size();vectorint result(size, 0);stackint st;st.push(0);for(int i1; isize; 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;
}
496. 下一个更大元素 I题目链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台
思路和上题非常相似只需在针对数组元素找到结果删除栈中该元素之际判断该元素是否在另一数组中出现。因此本题需要用到unordered_map。
vectorint nextGreaterElement(vectorint nums1, vectorint nums2) {int size1 nums1.size();int size2 nums2.size();vectorint result(size1, -1);unordered_mapint, int umap;for(int i0; isize1; i) umap[nums1[i]] i;stackint st;st.push(0);for(int i1; isize2; 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){result[umap[nums2[st.top()]]] nums2[i];}st.pop();}st.push(i);}}return result;
}