1.最多可以摧毁的敌人城堡数目
题目
Solution
可以第一重循环找到\(1\),然后从该位置分别向左和向又寻找\(-1\),寻找过程中遇到\(1\)则停止,不更新ans,遇到\(-1\)则更新ans。
class Solution {
public:
int captureForts(vector<int>& forts) {
int ans = -1;
int n = forts.size();
for(int i = 0;i < forts.size();i++){
if(forts[i] == 1){
for(int j = 1;j <= forts.size() - 1 && i + j <= n-1;j++){
if(forts[i+j] == 1) break;
if(forts[i+j] == -1){
ans = max(ans,j);
break;
}
}
for(int j = 1;j <= forts.size()-1 && i - j >= 0 && i != 0; j++){
if(forts[i-j] == 1) break;
if(forts[i-j] == -1){
ans = max(ans,j);
break;
}
}
}
}
return ans-1 > 0? ans-1:0;
}
};