做内部优惠券网站,做电影网站什么后果,visual composer wordpress,局域网内网站建设一、每日温度
题目一#xff1a;739. 每日温度
739. 每日温度
给定一个整数数组 temperatures #xff0c;表示每天的温度#xff0c;返回一个数组 answer #xff0c;其中 answer[i] 是指对于第 i 天#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升…一、每日温度
题目一739. 每日温度
739. 每日温度
给定一个整数数组 temperatures 表示每天的温度返回一个数组 answer 其中 answer[i] 是指对于第 i 天下一个更高温度出现在几天后。如果气温在这之后都不会升高请在该位置用 0 来代替 如果明天的温度比今天高那么栈顶的元素就可以出栈。栈内保存的是索引栈顶的元素是当前未被高温度覆盖的最近的一天。 class Solution {
public:vectorint dailyTemperatures(vectorint temperatures) {int n temperatures.size();vectorint answer(n);stackint s; for(int i 0; i n; i){while(!s.empty() temperatures[s.top()] temperatures[i]){int preIndex s.top();answer[preIndex] i - preIndex; s.pop();}s.push(i); }while(!s.empty()){answer[s.top()] 0;s.pop();}return answer;}
};
二、下一个更大元素 I
题目一496. 下一个更大元素 I
496. 下一个更大元素 I
nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。
给你两个 没有重复元素 的数组 nums1 和 nums2 下标从 0 开始计数其中nums1 是 nums2 的子集。
对于每个 0 i nums1.length 找出满足 nums1[i] nums2[j] 的下标 j 并且在 nums2 确定 nums2[j] 的 下一个更大元素 。如果不存在下一个更大元素那么本次查询的答案是 -1 。
返回一个长度为 nums1.length 的数组 ans 作为答案满足 ans[i] 是如上所述的 下一个更大元素 。 创建一个映射用于存储nums2中每个数的下一个更大元素然后再用创建的映射查找nums1中元素的下一个更大元素。 class Solution {
public:vectorint nextGreaterElement(vectorint nums1, vectorint nums2) {unordered_mapint, int numToNextGreater;stackint nextGreaterStack;for(int num : nums2){while(!nextGreaterStack.empty() nextGreaterStack.top() num){numToNextGreater[nextGreaterStack.top()] num;nextGreaterStack.pop();}nextGreaterStack.push(num);}while(!nextGreaterStack.empty()){numToNextGreater[nextGreaterStack.top()] -1;nextGreaterStack.pop();}vectorint answer(nums1.size());for(int i 0; i nums1.size(); i){answer[i] numToNextGreater[nums1[i]];}return answer;}
};