题目
特定大小的停车场,数组 cars[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度 1),货车占两个车位(长度2),卡车占三个车位(长度3),统计停车场最少可以停多少辆车,返回具体的数目。
题目输入
整型字符串数组 cars,其中1表示有车,0表示没车,数组长度小于1000。
题目输出
可以停多少量车
实例
1,1,0,1,0,0,0,0,1
输出:3
1,1,1,1,1,1,1,0,0,0,1,1,0,1,0
输出:5
题目解析
题目
题目代码
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main(){
string str;
cin >> str;
istringstream iss(str);
vector<int> nums;
string val;//必须是string
while(getline(iss, val, ',')){
nums.push_back(stoi(val));
}
int slowIndex = 0;
int result = 0;
int cmp = 0;
//双指针法
for(int i = 0; i < nums.size(); i++){
cmp = 0;//必须清零
if(nums[i] == 0){
cmp = i - slowIndex;
slowIndex = i + 1;
}
result += cmp/3;
int re3 = cmp%3;
result += re3/2;
result += re3%2;
}
cout << result;
return 0;
}