代码实现:
class Solution {
/** 找 1 -> -1 的时候,经过0的最大个数
* 解题思路:双指针
*/
public int captureForts(int[] forts) {
int len = forts.length;
if(len==1){
return 0;
}
int max = Integer.MIN_VALUE;
boolean flag = false;
boolean bool = true;// 判断是否走过max判断,没有走说明里面没有同时出现 1 和 -1
for (int i = 0; i < len-1; i++) {
for (int j = i+1; j < len; j++) {
if (forts[i]!=0 && forts[j]!=0 && forts[i] + forts[j] == 0){
int temp = i+1;
while (temp < j){// 判断 i 到 j中间是否全是 0
if (forts[temp]!=0){// 不全是 0,就结束判断
flag = true;
break;
}else {
temp++;
}
}
if (!flag){// 说明经过while还是true
bool = false;
max = Math.max(max, j-i-1);
}
}
flag = false;// 重置flag
}
}
if (bool){
return 0;
}else {
return max;
}
}
}