503.下一个更大元素II
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* nextGreaterElements(int* nums, int numsSize, int* returnSize) {
int my_stack[20000]={0};
int top=0;
my_stack[top++]=0;
int* res=(int*)calloc(numsSize*2,sizeof(int));
for(int i=0;i<numsSize;i++) res[i]=-1;
for(int i=1;i<numsSize*2;i++){
//模拟转圈;环形数组问题
//错解:i=i%numsSize;此会造成for无限循环
while(top>0&&nums[i%numsSize]>nums[my_stack[top-1]]){
res[my_stack[top-1]]=nums[i%numsSize];
top--;
}
my_stack[top++]=i%numsSize;
}
(*returnSize)=numsSize;
return res;
}