题目描述:
特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3),统计停车场最少可以停多少辆车,返回具体的数目。
输入描述:
整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。
输出描述:
整型数字字符串,表示最少停车数目。
示例1
输入:
1,0,1
输出:
2
说明:
1个小车占第1个车位
第二个车位空
1个小车占第3个车位
最少有两辆车
示例2
输入:
1,1,0,0,1,1,1,0,1
输出:
3
说明:
1个货车占第1、2个车位
第3、4个车位空
1个卡车占第5、6、7个车位
第8个车位空
1个小车占第9个车位
最少3辆车
代码
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//车辆数组
String[] cars=in.nextLine().split(",");
List<Integer> list = new ArrayList<>();//连续占用停车场数
int temp = 0;
for (int i = 0; i < cars.length; i++) {
if(!Objects.equals(cars[i], "0")){
temp++;
}else{
if(temp>0){
list.add(temp);
temp = 0;
}
}
}
if(temp>0){
list.add(temp);
}
int carSum=0;
for (Integer integer : list) {
if (integer % 3 == 0) {
carSum += integer / 3;
} else {
carSum += integer / 3 + 1;
}
}
System.out.println(carSum);
}
}