停车场有一横排车位,0代表没有停车,1代表有车。至少停了一辆车在车位上,也至少有一个空位没有停车。
为了防剐蹭,需为停车人找到一个车位,使得距停车人的车最近的车辆的距离是最大的,返回此时的最大距离。
1、一个用半角逗号分割的停车标识字符串,停车标识为0或1,0为空位,1为已停车。
2、停车位最多100个。
输出一个整数记录最大距离。
输入
1,0,0,0,0,1,0,0,1,0,1
输出
2
说明
当车停在第3个位置上时,离其最近的的车距离为2(1到3)。
当车停在第4个位置上时,离其最近的的车距离为2(4到6)。
其他位置距离为1。
因此最大距离为2。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String n = sc.next();
String[] arr = n.split(",");
int count = 0, max = 0, left = 0;
for (String str : arr) {
if (str.equals("0")) {
count++;
} else {
if (left == 0) {
max = count * 2;
left = 1;
} else {
max = Math.max(max, count);
}
count = 0;
}
}
if (arr[arr.length - 1].equals("0")) {
max = Math.max(max, count * 2);
} else {
max = Math.max(max, count);
}
System.out.println((max + 1) / 2);
}
下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路
本文收录于,华为OD机试(JAVA)(2022&2023)
本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。