LeetCode 496下一个更大元素,为什么运行结果会出现这种错误?
题目描述:我的代码:
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的编译器上就会报错。
回复
1个回答
test
2024-06-24
returnSize 你没有给赋值
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容