LeetCode 496下一个更大元素,为什么运行结果会出现这种错误?

题目描述:
image.png
我的代码:

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; // 返回结果数组的指针
}

运行错误:
image.png
为什么运行结果只有一个右括号

在VS 2022上可以正常运行,但是在leetcode的编译器上就会报错。

阅读 547
1 个回答

returnSize 你没有给赋值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏