You are given a String[] blocks representing the layout of a city. Each character of each element of blocks represents one city block. A 'B' character represents a bus stop, and a '-' represents all other spaces. The fare for traveling on the bus is equal to the manhattan distance (difference in X-coordinates plus difference in Y-coordinates, see the first example for clarification) between the starting and ending bus stops. Return the largest possible fare for a trip from one bus stop to another.
Problem Statement
Definition
Class:
CityBuses
Method:
maximumFare
Parameters:
String[]
Returns:
int
Method signature:
int maximumFare(String[] blocks)
(be sure your method is public)
Constraints
-
blocks will contain between 1 and 50 elements, inclusive.
-
Each element of blocks will contain between 1 and 50 characters, inclusive.
-
Each element of blocks will contain the same number of characters.
-
Each character of each element of blocks will be 'B' or '-'.
-
There will be at least two bus stops.
Examples
0)
{"B--", "B--", "--B"}
Returns: 4
Starting from the top-left, the coordinates of the bus stops are (0,0), (1,0), and (2,2). The distance is the difference in X-coordinates plus the difference in y-coordinates. So, the distance between each pair of bus stops is as follows: (0,0) - (1,0) : 1 + 0 = 1 (1,0) - (2,2) : 1 + 2 = 3 (0,0) - (2,2) : 2 + 2 = 4
The largest distance (thus the highest fare) is 4.
1)
{"--B", "---", "-B-"}
Returns: 3
There's only one route we can take, and it has a distance of 3.
2)
{"--B-", "B---", "-B-B", "B---"}
Returns: 5
The largest distance here is from (0,2) to (3,0).
3)
{"BB"}
Returns: 1
A short, and unexciting bus ride.
import java.util.*; public class CityBuses { class Pos { int x, y; Pos(int x, int y) { this.x = x; this.y = y; } } public int maximumFare(String[] blocks) { List<Pos> stops = new ArrayList<Pos>(); for (int i = 0; i < blocks.length; i++) for (int j = 0; j < blocks[i].length(); j++) if (blocks[i].charAt(j) == 'B') stops.add(new Pos(i, j)); int max = -1; Pos pi, pj; for (int i = 0; i < stops.size(); i++) for (int j = i + 1; j < stops.size(); j++) { pi = stops.get(i); pj = stops.get(j); max = Math.max(max, Math.abs(pi.x - pj.x) + Math.abs(pi.y - pj.y)); } return max; } }
发表评论
-
TCHS-12-950
2010-03-01 12:58 788Problem Statement ... -
TCHS-12-550
2010-03-01 10:04 712Problem Statement ... -
TCHS-12-250
2010-02-28 09:53 724Problem Statement ... -
TCHS-11-1000
2010-02-22 15:22 679Problem Statement ... -
TCHS-11-500
2010-02-22 13:11 801Problem Statement ... -
TCHS-10-1000
2010-02-21 16:35 696Problem Statement ... -
TCHS-10-500
2010-02-21 15:16 772Problem Statement ... -
TCHS-10-250
2010-02-21 14:26 772Problem Statement ... -
TCHS-9-1000
2010-02-20 18:45 708Problem Statement ... -
TCHS-9-500
2010-02-20 16:26 1333Problem Statement ... -
TCHS-9-250
2010-02-20 15:24 694Problem Statement ... -
TCHS-8-1000
2010-02-19 11:57 692Problem Statement ... -
TCHS-8-500
2010-02-19 10:56 767Problem Statement ... -
TCHS-8-250
2010-02-19 10:18 622Problem Statement ... -
TCHS-7-1000
2010-02-05 15:21 698Problem Statement ... -
TCHS-7-500
2010-02-05 13:45 698Problem Statement ... -
TCHS-7-250
2010-02-05 13:32 784Problem Statement ... -
TCHS-6-900
2010-02-04 12:06 678Problem Statement ... -
TCHS-6-600
2010-02-04 11:33 715Problem Statement ... -
TCHS-6-250
2010-02-04 09:56 671Problem Statement ...
相关推荐
TCHS-SRM-1 SRM - 算法单轮比赛 2. USACO - C++11 礼物1.cpp 骑车.cpp 测试.cpp 3.乌拉尔 - - C++11,Java 1.8 乌拉尔在线法官的可能解决方案 反向Root.cpp 总和文件 求和程序 最终排名.cpp 磁暴.cpp 磁暴.java 寂寞...
- 计算`PDCHS_zhuan`和`TCHS_zhuan`(专用数据信道和语音信道转换后的数量)。 - 计算`DSP_pdch`和`DSP_tch`(所需的数字信号处理器数量)。 #### 输出结果 - 使用`printf`函数输出计算结果,包括基站数量、链路接...
电路交换业务信道(TCHs)测试是BER测试的重要组成部分,主要用于评估语音和低速数据服务的质量。这一部分将详细介绍如何设置测试环境并执行测试。 #### 分组数据业务信道(PDTCHs)测试 随着数据传输速度的提高,...
TCHs(时隙分配)、TRXSIG(发射信号)和OMUSIG(操作维护信道)是需要配置的。 5. **电源模块**:DE34基站的公共设备直流电源由CSUA模块提供。 6. **GSM多址方式**:GSM系统采用FDMA(频分多址)和TDMA(时分多址...
4. 配置ULTRASITE传输时,不需要配置EDAP(可能是指电子数据接入点),而需要配置TCHs(时隙信道)、TRXSIG(传输信号)和OMUSIG(操作维护信号)。 5. DE34基站的公共设备直流电源由CSUA模块提供,而非PWSB、PSUA...
要告诉技术人员验证元素,请将“tchs”属性添加到元素。 <input type="text" tchs=""></input> 技术人员利用规则来验证元素。 验证是在每个元素的基础上完成的,并且根据所使用的元素进行不同的工作...
此外,TopCoder竞赛提供了丰富的奖金和机会,如TopCoder Open(TCO)、TopCoder Collegiate Challenge(TCCC)和TopCoder High School(TCHS)等,涵盖算法、设计、开发和组装等领域。TopCoder Studio则专注于网页...