题目链接
代码实现:
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 和 -1for (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中间是否全是 0if (forts[temp]!=0){// 不全是 0,就结束判断flag = true;break;}else {temp++;}}if (!flag){// 说明经过while还是truebool = false;max = Math.max(max, j-i-1);}}flag = false;// 重置flag}}if (bool){return 0;}else {return max;}}
}