广度优先遍历:

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner; class Node{
public int x_,y_;
public int time_;
public Node(int x,int y,int t){
x_ = x;
y_ = y;
time_ = t;
}
} public class Main { public static boolean inside(int x,int y,int r,int c){
if(x>=0&&x<r&&y>=0&&y<c)
return true;
return false;
} public static void main(String[] args)
{
Integer[][] graph = new Integer[11][11];
int[][] dir = new int[][]{{-1,0}, {0, 1}, {1, 0},{0,-1}};
boolean[][] flag = new boolean[11][11];
int row=0, col=0,total=0,cnt=0;
Scanner in = new Scanner(System.in);
Queue<Node> que = new LinkedList<Node>();
while(in.hasNext()){
String line = in.nextLine();
if(line.equals(""))
break;
String[] strs = line.split("\\ ");
col = strs.length;
for(int i=0;i<col;i++) {
graph[row][i] = Integer.valueOf(strs[i]);
if(graph[row][i]!=0)
total++;
if(graph[row][i] == 2){
flag[row][i] = true;
Node node = new Node(row,i,0);
que.add(node);
}
}
row++;
}
int res = 0;
while(que.isEmpty() == false){
Node now = que.poll();
res = Math.max(res, now.time_);
cnt++;
//System.out.println(now.x_+now.y_);
for(int i=0;i<4;i++){
int xx = now.x_+dir[i][0];
int yy = now.y_+dir[i][1];
if(inside(xx,yy,row,col)&&flag[xx][yy]==false&&graph[xx][yy]==1){
flag[xx][yy] = true;
que.add(new Node(xx,yy,now.time_+1));
}
}
}
if(cnt<total)
System.out.println(-1);
else if(cnt==total)
System.out.println(res);
return ;
}

2019年今日头条机试_JAVA后台岗_第一题的更多相关文章

  1. 2019年今日头条机试_JAVA后台岗_第二题

    使用map的递推,java对象做key需要重写equeal,hashCode方法,使拥有相同属性值的对象被识别为同一对象. import java.util.*; class Cat{ public ...

  2. Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解

    Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解 题目地址:https://codingcompetitions.withgoogle.com/kickstar ...

  3. 第2课第3节_Java面向对象编程_继承性_P【学习笔记】

    摘要:韦东山android视频学习笔记  面向对象程序的三大特性之继承性:继承性的主要作用就是复用代码.继承性也有一定的限制,如图一 图一 1.我们在第2课第2节_Java面向对象编程_封装性_P 中 ...

  4. 原创:【ajax | axios跨域简单请求+复杂请求】自定义header头Token请求Laravel5后台【亲测可用】

    如标题:我想在ajax的header头增加自定义Token进行跨域api认证并调用,api使用laravel5编写,如何实现? 首先,了解下CORS简单请求和复杂请求.  -- CORS简单请求 -- ...

  5. 2019.08.02 云从科技C++后台开发

    公司坐标:重庆 岗位:C++后台开发 面试时长:45分钟 主要问题记录: (1)手写代码 冒泡算法的实现: /**   * 冒泡排序:C++   *   * @author skywang   * @ ...

  6. [刘阳Java]_美团点评2018届校招面试总结_Java后台开发【转载】

    美团喜欢一口气把三轮技术面和HR面一起面完,虽然身心比较累(每一面差不多一个小时),不过也算是一个好事,不像某些公司一天就一面然后让回去等消息,等面试通知也等得让人很焦虑,而且还容易出现面试时间冲突. ...

  7. S2SH商用后台权限系统第一讲

    各位博友: 您好!从今天开始我们做一套商用的权限系统.功能包含用户管理.角色管理.模块管理.权限管理.大家知道每个商用系统肯定会拥有一套后台系统,我们所讲的权限系统是整个系统核心部分.本套系统技术有s ...

  8. react_app 项目开发 (5)_前后端分离_后台管理系统_开始

    项目描述 技术选型 react API 接口 接口文档,url,请求方式,参数类型, 根据文档描述的方法,进行 postman 测试,看是否能够得到理想的结果 collections - 创建文件取项 ...

  9. 2018春招-今日头条笔试题-第一题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 要想得到输入的数字列中存在相隔为k的数,可以将输入的数字加上k,然后判断其在不在输入的数字列中即可. #-*- cod ...

随机推荐

  1. python的日志logging模块性能以及多进程

    写在前面: 日志是记录操作的一种好方式.但是日志,基本都是基于文件的,也就是要写到磁盘上的.这时候,磁盘将会成为一个性能瓶颈.对于普通的服务器硬盘(机械磁盘,非固态硬盘),python日志的性能瓶颈是 ...

  2. 【转】java对象——new对象的理解

    学了好长时间的java对于java中的对象一直没有理清楚,今天楼主对java中的对象进行了整理,希望对大家有帮助. 理解和使用java中的对象,我们首先了解一下构造方法与对象的创建.  类是面向对象语 ...

  3. 【转】在IDEA中创建maven项目

    原文地址: https://blog.csdn.net/zzy1078689276/article/details/78732183 现在的JavaWeb项目中,绝大多数都是采用的maven结构的项目 ...

  4. SpringBoot启动的时候不去校验数据库连接配置是否正确

    spring boot在启动的时候只会检查你是否配置了数据库连接, 而不会检测配置的是否正确 这样会出现的问题是: 只有在你使用数据库的时候才知道配置出错, 我们希望是在程序启动的时候就进行检查, 如 ...

  5. HDU5213(容斥定理+莫队算法)

    传送门 题意 给出n个数和幸运数k,m次询问,每次询问[l1,r1]和[l2,r2]有多少对数满足x+y=k,x∈[l1,r1],y∈[l2,r2] 分析 看到m只有3e4,可以考虑\(m\sqrt{ ...

  6. Cg profiles,如何使用CGC编译Cg语言(转)

    抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 计算机只能理解和执行由0.1序列(电压序列 ...

  7. Managed C++ wtypes.h DATE 转化为 .net的 DateTime

    http://stackoverflow.com/questions/570224/how-do-i-convert-from-mfcs-coledatetime-to-c-sharp-datetim ...

  8. bzoj 3232: 圈地游戏【分数规划+最小割】

    数组开小导致TTTTTLE-- 是分数规划,设sm为所有格子价值和,二分出mid之后,用最小割来判断,也就是判断sm-dinic()>=0 这个最小割比较像最大权闭合子图,建图是s像所有点连流量 ...

  9. 黑客攻防技术宝典web实战篇:攻击验证机制习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 在测试一个使用joe和pass证书登录的Web应用程序的过程中,在登录阶段,在拦截代理服务 ...

  10. hdu3038 How Many Answers Are Wrong 种类并查集

    #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int ...