题目描述:
我的代码:
int* nextGreaterElement(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {
int* res = (int*)malloc(nums1Size * sizeof(int)); // 为结果数组分配内存
int hashmap[10000];
int st[nums2Size]; // 使用数组实现栈
int stTop = -1; // 栈顶指针的初始值为-1,表示栈为空
// 计算nums2中每个元素的"下一个更大元素"并保存到hashmap中
for (int i = nums2Size - 1; i >= 0; --i) {
int num = nums2[i];
while (stTop >= 0 && num >= st[stTop]) {
// 如果栈不为空且当前元素比栈顶元素大,则出栈
--stTop;
}
hashmap[num] = stTop < 0 ? -1 : st[stTop];
// 将当前元素入栈
st[++stTop] = num;
}
// 根据nums1中的元素在hashmap中查找对应的"下一个更大元素"
for (int i = 0; i < nums1Size; ++i) {
res[i] = hashmap[nums1[i]];
}
return res; // 返回结果数组的指针
}
运行错误:
为什么运行结果只有一个右括号
在VS 2022上可以正常运行,但是在leetcode的编译器上就会报错。
returnSize 你没有给赋值