739.每日温度
public class Solution {
public int[] DailyTemperatures(int[] temperatures) {
int[]ans=new int[temperatures.Length];
var s=new Stack<int>();
for(int i=0;i<temperatures.Length;i++)
{
while(s.Count!=0&&temperatures[i]>temperatures[s.Peek()])
{
ans[s.Peek()]=i-s.Peek();
s.Pop();
}
s.Push(i);
}
return ans;
}
}
496.下一个更大元素 I
public class Solution {
public int[] NextGreaterElement(int[] nums1, int[] nums2) {
var s=new Stack<int>();
int[]ans=new int[nums1.Length];
for(int i=0;i<ans.Length;i++)
{
ans[i]=-1;
}
var dic=new Dictionary<int,int>();
for(int i=0;i<nums1.Length;i++)
{
dic.Add(nums1[i],i);
}
for(int i=0;i<nums2.Length;i++)
{
while(s.Count!=0&&nums2[i]>nums2[s.Peek()])
{
if(dic.ContainsKey(nums2[s.Peek()]))
{
int index=dic[nums2[s.Peek()]];
ans[index]=nums2[i];
}
s.Pop();
}
s.Push(i);
}
return ans;
}
}