首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能找出我得到分割错误的测试案例吗?

不能找出我得到分割错误的测试案例吗?
EN

Stack Overflow用户
提问于 2021-12-21 20:04:07
回答 1查看 43关注 0票数 0

对于一些未知的测试用例,我得到了分割错误,但我无法解决它。大多数情况下都是这样。我只想知道在这种情况下,我得到分割错误。该代码是为问题的最大矩形面积在直方图中编写的。您可以在这里检查这个问题:https://practice.geeksforgeeks.org/problems/maximum-rectangular-area-in-a-histogram-1587115620/1#

以下是代码:

代码语言:javascript
复制
 long long getMaxArea(long long arr[], int n)
    {
        int nsl[n];
        int nsr[n];
        stack<int>s;
        // nsl
        for(int i=0;i<n;i++)
        {
            if(i==0)
            {
                nsl[i]=-1;
                s.push(i);
            }
            else{
                while(!s.empty())
                {
                    if(arr[s.top()]<arr[i])
                    break;
                    s.pop();
                }
                if(s.empty())
                nsl[i]=-1;
                else
                nsl[i]=s.top();
                s.push(i);
            }
        }
        stack<int>st;
        // nsr
        for(int i=n-1;i>=0;i--)
        {
            if(i==n-1)
            {
                nsr[i]=n;
                st.push(i);
            }
            else{
                while(!st.empty())
                {
                    if(arr[st.top()]<arr[i])
                    break;
                    st.pop();
                }
                if(st.empty())
                nsr[i]=n;
                else
                nsr[i]=st.top();
                st.push(i);
            }
        }
        long long ans=0;
        for(int i=0;i<n;i++)
        ans=max(ans,arr[i]*(nsr[i]-nsl[i]-1));
        return ans;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 06:29:52

用矢量代替阵列解决了问题。我只是对数组使用了糟糕的c++语法,因此使用向量解决了它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70441031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档