int* nextGreaterElements(int* nums, int numsSize, int* returnSize){
int *res;
int sstack[numsSize*2];
int top = 0;
res = (int *)malloc(numsSize * sizeof(int));
memset(res, -1, sizeof(int) * numsSize);
for (int i = 0; i < numsSize * 2 - 1; i++) {
while((top > 0) && (nums[sstack[top - 1]] < nums[i % numsSize])) {
res[sstack[top - 1]] = nums[i % numsSize];
top--;
}
sstack[top++] = i % numsSize;
}
*returnSize = numsSize;
return res;
}
力扣503. 下一个更大元素 II
于 2022-07-01 00:58:27 首次发布