LeetCode第739题

本题考查的是数据结构中的栈

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 
 5 //使用的是栈,压栈的数是数组的下标
 6 int* dailyTemperatures1(int* temperatures, int temperaturesSize, int* returnSize) 
 7 {
 8     int n=temperaturesSize;
 9     int* res=(int*)malloc(sizeof(int)*n);
10     memset(res,0,sizeof(int)*n);
11     int* tmp=(int*)malloc(sizeof(int)*n);
12     int k=0;
13     int i=0;
14     for(;i<n;i++)
15     {
16         while(k>0 && temperatures[i]>temperatures[tmp[k-1]])
17         {
18             res[tmp[k-1]]=i-tmp[k-1];
19             k--;
20         }
21         tmp[k++]=i;
22     }
23     *returnSize=n;
24     return res;
25 }
26 
27 int main()
28 {
29     int arr[]={73,74,75,71,69,72,76,73};
30     int returnSize=8;
31     
32     int *p=dailyTemperatures1(arr,8,&returnSize);
33     int i=0;
34     for(i=0;i<returnSize;i++)
35     {
36         printf("%d ",p[i]);
37     }
38     return 0;
39 }

猜你喜欢

转载自www.cnblogs.com/njit-sam/p/12691380.html