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 }