题解 | 最小长方形

最小长方形

https://www.nowcoder.com/practice/dc6a75a15d1948edafa6d63bc8fc2368

#include <iostream>
#include<vector>
#include <algorithm>
using namespace std;


int main() {
    int x,y;
    int ld[2]={0,0};
        int ru[2]={0,0};
        vector<int> xz;
        vector<int> yz;
    while(cin>>x>>y)
    {
        
    if(x==0&&y==0)
    {
        if(ld[0]==0&&ld[1]==0&&ru[0]==0&&ru[1]==0)
        continue;
        else
         {
        cout<<ld[0]<<" "<<ld[1]<<" "<<ru[0]<<" "<<ru[1]<<endl;
        ld[0]=0;ld[1]=0;ru[0]=0;ru[1]=0;
        xz.clear();yz.clear();
         }
    }
    else {
        xz.push_back(x);
        yz.push_back(y);
        sort(xz.begin(),xz.end());
        sort(yz.begin(),yz.end());
        auto it=xz.begin();
        ld[0]=*it;
        it=yz.begin();
        ld[1]=*it;
        it=xz.end()-1;
        ru[0]=*it;
        it=yz.end()-1;
        ru[1]=*it;
    }
    
    
    }
}

// 64 位输出请用 printf("%lld")
//取x轴和y轴上最大值和最小值之差作为长宽就可以了

逻辑很简单,写起来这方法蠢爆了,更蠢的是第一次居然把ld和ru还有xz,yz都定义在while循环里面,导致每次循环都得初始化为空一次,所以没有任何输出,关键是排查了好久都没查出来,气笑了

全部评论

相关推荐

04-03 09:32
已编辑
华南农业大学 golang
我的代码出BUG了:"晚点发个邮件调整一下时间",你收到新的邮件没,如果没有收到新的邮件,那就需要进入面试链接留痕,否则系统会判定你迟到
点赞 评论 收藏
分享
最喜欢秋天的火龙果很...:第一份工作一定要往大的去,工资低点没事。后面换工作会更好找,即使你去小公司,你也不可能不会换工作的。所以找大的去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务