博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Uva 572 Oil Deposits
阅读量:5170 次
发布时间:2019-06-13

本文共 1594 字,大约阅读时间需要 5 分钟。

思路:可以用DFS求解。遍历这个二维数组,没发现一次未被发现的‘@’,便将其作为起点进行搜索。最后的答案,是这个遍历过程中发现了几次为被发现的‘@’

import java.util.*;public class Main{    public static void main(String[] args) {        Scanner in = new Scanner( System.in );        while( true ) {            int rows, cols;            rows = in.nextInt(); // read the rows            cols = in.nextInt(); // read the cols            if( rows == 0 && cols == 0 ) { // the input end                break;            }            OilDeposits od = new OilDeposits( rows, cols );            od.readGrids( in ); // read the strings            System.out.println( od.getPocketsAmount() );        }    }}class OilDeposits{    private int rows, cols;    private char grids[][];    private boolean vis[][];    private final int dir[][] = { // the eight directions            {-1,-1}, {-1,0}, {-1,1}, {0,-1}, {0,1}, {1,-1}, {1,0}, {1,1}        };    private final char EMPTY = '*';    private final char EXIST = '@';        public OilDeposits( int rows, int cols ) {        this.rows = rows;        this.cols = cols;        this.grids = new char[ rows + 5 ][ cols + 5 ];        this.vis = new boolean[ rows ][ cols ];        for( int i=0; i
= this.rows || col < 0 || col >= this.cols || vis[row][col] || this.grids[row][col] == EMPTY ) { return false; } return true; } public void readGrids( Scanner in ) { String str; for( int i=0; i

 其中之所以将Scanner的对象进行传递,是因为如果重新声明一个Scanner的对象,会使输入出错,错误的具体表现为一直等待输入,尽管已经在Console中输入了数据。猜测可能是未关闭上一个Scanner的对象导致的,所以这里将Scanner的对象进行传递。

转载于:https://www.cnblogs.com/Emerald/p/4544682.html

你可能感兴趣的文章
4.AE中的缩放,书签
查看>>
给一次重新选择的机会_您还会选择程序员吗?
查看>>
Mysql MHA高可用集群架构
查看>>
心急的C小加
查看>>
编译原理 First,Follow,select集求法
查看>>
iOS开发 runtime实现原理以及实际开发中的应用
查看>>
android 学习资源网址
查看>>
qt安装遇到的错误
查看>>
java:Apache Shiro 权限管理
查看>>
objective c的注释规范
查看>>
FreeNas安装配置使用
查看>>
Django(一)框架简介
查看>>
Python操作SQLite数据库的方法详解
查看>>
菜单和工具条(二)
查看>>
hadoop17---RPC和Socket的区别
查看>>
使用JMeter代理录制app测试脚本
查看>>
Linq to Object实现分页获取数据
查看>>
mac常用系统命令
查看>>
android上传文件到服务器
查看>>
我回答了90%的面试题,为什么还被拒?
查看>>