Problem3096. 得到更多分数的最少关卡数目
思路:前缀和预处理一下,要求最小过关数目,直接从小到大枚举,找到就直接返回答案
Accode:
class Solution {
public:
int minimumLevels(vector<int>& possible) {
vector<int> arr;
int len = possible.size();
arr.push_back(0);
for(auto i:possible){
if(i==0){
arr.push_back(arr.back()-1);
}
else arr.push_back(arr.back()+1);
}
for(int i=0;i<len-1;i++){
if(2*arr[i+1]>arr[len]){
return i+1;
}
}
return -1;
}
};
时间复杂度:$o(n)$