头条笔试

//只写了第一道
//AC代码,记录一下证明我参加了-_-
//bfs算法,输入让我搞了很久,心痛
#include <iostream>
#include<utility>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int num[12][12];
int state[12][12];
int offset[4][2]={1,0,0,1,-1,0,0,-1};
int main()
{
    int i,j,step=0;
    char ch;
    memset(num,0,sizeof(num));
    memset(state,0,sizeof(state));
    cin.get(ch);
    for(i=0;i<12;++i)
    {
        for(j=0;j<12;)
        {
            if(ch!=' '&&ch!='\n') {num[i][j]=ch-'0';++j;}
            if(ch=='\n') break;
            cin.get(ch);
        }
       cin.get(ch);
       if(ch=='\n') break;
    }
    bool flag=false;
    int cnt2=0,cnt2_temp=0;
    queue<pair<int,int> >q;
    for(int t=0;t<=i;++t)
        for(int s=0;s<j;++s)
        {
            if(num[t][s]==2) {
                    q.push(pair<int,int>(t,s));
                    ++cnt2;
                    state[t][s]=1;
            }
        }
    while(!q.empty())
    {
        pair<int,int>f=q.front();
        q.pop();
        --cnt2;
                for(int k=0;k<4;++k)
                {
                    int x=f.first+offset[k][0];
                    int y=f.second+offset[k][1];
                    if(x<=i&&y<j&&state[x][y]==0&&num[x][y]==1)
                    {
                    flag=true;
                    num[x][y]=2;
                    state[x][y]=1;
                    q.push(pair<int,int>(x,y));
                    ++cnt2_temp;
                    }
                }
        if(cnt2<=0){
            if(!flag) break;
            if(flag)
            {
                 cnt2=cnt2_temp;
                 cnt2_temp=0;
                 ++step;
                 flag=false;
            }
        }
    }
    bool ishas=true;
    for(int t=0;t<=i;++t)
    {
        for(int s=0;s<j;++s)
        if(num[t][s]==1) ishas=false;
    }
    if(ishas)
    {
        if(step<=0) cout<<-1<<endl;
        else cout<<step<<endl;
    }
    else cout<<-1<<endl;
    return 0;
}

#笔试题目##春招#
全部评论
后面的要理解题意都感觉不容易更别说做了,唉!
点赞 回复 分享
发布于 2019-04-14 12:05
我也是只过了第一题
点赞 回复 分享
发布于 2019-04-14 12:03
我也是只过了一道😥
点赞 回复 分享
发布于 2019-04-14 12:03
我是一个题都没做空完整,开始以为和leecode的题一样,结果发现还是有很大不一样
点赞 回复 分享
发布于 2019-04-14 12:04
请问一下第一题的题目是什么规则,我想复盘一下,想不起来那几个规则了
点赞 回复 分享
发布于 2019-04-15 14:53

相关推荐

醒工硬件:1学校那里把xxxxx学院去了,加了学院看着就不像本校 2简历实习和项目稍微精简一下。字太多,面试官看着累 3第一个实习格式和第二个实习不一样。建议换行 4项目描述太详细了,你快把原理图贴上来了。比如可以这样描述:使用yyyy芯片,使用xx拓扑,使用pwm控制频率与占空比,进行了了mos/电感/变压器选型,实现了xx功能 建议把技术栈和你做的较为有亮点的工作归纳出来 5熟悉正反激这个是真的吗
点赞 评论 收藏
分享
xxxxOxo:这公司幽默得很,要了简历半天一点动静都没有,过一会就给你发个邮件让你做测试,做完又没后文了,纯溜人
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务