截图有重叠,大家将就一下。本人没有参加在线笔试,主要跟大家分享一下思路。
题目的意思就是找到从起始节点开始的定长路径,路径必须包含一个必须要到达的节点。返回所有的路径数,如果不存在这样的路径,则返回0。
既然要找到所有路径,那就采用广搜。如果路径长度达到指定长度,则检查路径中是否包含必须要到达的节点,如果包含,路径数加1;如果路径长度没有达到指定长度,则从当前路径的末节点开始,搜索所有没有被访问的邻居。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class AmazonOnline {
     static ArrayList<Integer> path = new ArrayList<>();
    static int pathCount;
     static int mustVisit;
    static  int num;
    static byte[][] cities;

public static void main(String[] args)
    {
        InputStreamReader ir;
         BufferedReader br;

ir = new InputStreamReader(System.in);
        br = new BufferedReader(ir);

int n,m;
        int start;
        try 
         {
            String[] strs = br.readLine().split(" ");
            n = Integer.parseInt(strs[0]);
            m = Integer.parseInt(strs[1]);
            strs = br.readLine().split(" ");
            cities = new byte[n][m];
            for(int i=0;i<n;i++)
                for(int j=0;j<m;j++)
                {
                     cities[i][j] = Byte.parseByte(strs[i*m+j]);
                     if(cities[i][j]==1)
                    {
                        start = i*m + j;
                        path.add(start);
                    }
                    if(cities[i][j]==2)
                     {
                        mustVisit = i*m + j;
                         cities[i][j] = 0;
                     }
                }
            num = Integer.parseInt(br.readLine());
         } catch (IOException e) {
            e.printStackTrace();
        }
        BFS();
        System.out.println(pathCount);
     }

private static void BFS()
    {
         if(path.size()==num)
        {
            if(path.contains(mustVisit))
                 pathCount++;
             return;
        }
        int i = path.get(path.size()-1)/cities[0].length;
        int j = path.get(path.size()-1)%cities[0].length;

for(int x=i-1;x<=i+1;x++)
             for(int y=j-1;y<=j+1;y++)
             {
                if(x>=0&&x<=cities.length-1&&y>=0&&y<=cities[0].length-1&&cities[x][y]==0)
                {
                     cities[x][y] = 3;
                    path.add(x*cities[0].length+y);
                    BFS();
                     path.remove(path.size()-1);
                     cities[x][y] = 0;
                }
            }
       }
}

亚马逊2015校招在线笔试1相关推荐

  1. 亚马逊Kindle电子书在线管理网站,管理我的内容和设备入口,如何进入

    1.通过亚马逊官网进入 进入亚马逊官网: https://www.amazon.cn/ 登录后在右上角我的账户中,选择管理我的设备和内容 即可进入相关页面,在个人文档中可以找到通过邮箱和微信公众号推送 ...

  2. 亚马逊:从零售商向科技公司的质变

    报告来源:国泰君安(訾猛) 亚马逊以技术为核心驱动力,实现从电商向科技公司的跨越,形成电商.物流.AWS.新零售协同发展的完整生态圈. 亚马逊从1995年开始为用户提供线上商品,从一家网上书店发展成全 ...

  3. 硅谷封面|美国人要小心了!亚马逊正在监控他们的一举一动

    划重点: 1今年6月份,亚马逊承认会保留数字助理与Alexa与用户交互的部分数据,但其对技术涉及的隐私担忧置之不理. 2亚马逊通过Echo设备在用户厨房.客厅或卧室里内置了联网麦克风和摄像头,且不关心 ...

  4. 亚马逊的策略分析:不仅仅是电商,AI构建新的业务支柱

     亚马逊的策略分析:不仅仅是电商,AI构建新的业务支柱 乐邦 来源:网易科技报道 2017年04月26日 09:30评论(4 ) 4月26日消息,市场研究公司CB Insights近日发布报告全面 ...

  5. 研究表明亚马逊公司正在进军印度数据中心市场

    根据一条新闻报道,亚马逊公司在印度孟买建立了五个数据中心,旨在应对印度次大陆的云服务快速增长的市场竞争. 2015年6月,亚马逊公司宣布在印度实施亚马逊网络服务(AWS)计划,从那时起,已建立了必要的 ...

  6. 超市的100年发展史:好日子终结 亚马逊无人店是趋势

    https://blog.csdn.net/McIl9G4065Q/article/details/83542723 [网易智能讯 10月30日消息]电商巨头亚马逊已经在旧金山.西雅图和芝加哥等地开设 ...

  7. 亚马逊的现代应用程序为何这么强大?

    创新已经渗透到了亚马逊的DNA中......本文就从微服务.专用数据库.自动化软件发布管道.无服务器操作模型.以及自动化和安全性这五个方面介绍下亚马逊是如何利用应用程序开发来提高敏捷度和创新速度的! ...

  8. 亚马逊经济:从仓库到庞大的零售帝国

    据国外媒体报道,亚马逊曾经只是一家在线书店,现在该公司为很多企业和个人提供了重要的物流服务,但这点似乎将使其面临严厉的政府审查. 在弗吉尼亚州的一个仓库里,高耸的木架和突起的塑料薄膜卷之间堆满了超级吸 ...

  9. 《一键下单:杰夫·贝佐斯与亚马逊的崛起》—— 读后总结

    <一键下单:杰夫·贝佐斯与亚马逊的崛起>-- 读后总结 这本书讲述了亚马逊的成长历史以及杰夫·贝佐斯的创业生涯,从基金公司到亚马逊书店,从在线书店到万货商店,从云计算到蓝色起源,了解贝佐斯 ...

最新文章

  1. AtCoder Grand Contest 030 自闭记
  2. 第十天:估算活动持续时间
  3. 什么是JavaServer Faces(JSF)–(第2部分)
  4. 正能量之项目经理的自我修养
  5. ThreadLocal和InheritableThreadLocal使用
  6. android选项菜单xml,使用 XML 定义选项菜单
  7. 黑龙江2021年高考成绩查询分数,2021年黑龙江高考成绩什么时候公布
  8. Linux之bash脚本编程---if补充和for循环
  9. canopy java_在Windows上安装带有Enthought Canopy的Theano
  10. 计算机信息与自然科学,郑旭飞 - 计算机与信息科学学院 - Powered by 西南大学
  11. 用Python BeautifulSoup写的一份多线程图片抓取的脚本
  12. 可复用的显示隐藏按钮组件
  13. maxima安装使用
  14. matplotlib的简介
  15. Office 2016 系列 VOL版本下载
  16. 【Python机器学习】标注任务与序列问题讲解(图文解释)
  17. 黑盒测试之导入CVS文件之什么是CVS文件
  18. 【NG-ZORRO、Angular】日期选择框时间段nz-range-picker设置开始结束时间00:00:00~23:59:59
  19. 2017.2.13pat乙级15分题
  20. 【Python入门指北】 Python计算机二级知识点

热门文章

  1. oracle用plsql trance,Oracle执行计划总结
  2. 【计算机组成原理】定点数和浮点数
  3. ubuntu软件源配置 ubuntu20.04
  4. JQuery 学习总结
  5. NR 通信中的相干时间Tc和相干带宽Wc
  6. 13linux之提权 ------1.使用groupadd命令新增组, 2.使用groupmod命令修改组 3.groupdel删除组。 2.切换用户身份、提权
  7. 【行业方案】智慧港口:EasyCVR智能视频技术助力港口可视化监管
  8. 最近新看到的手帐新记法 bujo 子弹日记
  9. Adadelta--学习笔记
  10. sed: -e expression #1, char 16: invalid reference \1 on `s‘ command‘s RHS