这题最关键的是处理最开始连续1和最后连续1的方式,想到list一般在最前面加个node的处理方式,在最前面和最后面加0即可以很好地处理了
1 public class Solution { 2 public int findMaxConsecutiveOnes(int[] nums) { 3 int[] newNums = new int[nums.length+2]; 4 newNums[0] = 0; 5 newNums[newNums.length-1] = 0; 6 for (int i = 1; i < newNums.length-1; i++) { 7 newNums[i] = nums[i-1]; 8 } 9 int ans = 0; 10 int lastPos = 0; 11 for (int i = 0; i < newNums.length; i++) { 12 if (newNums[i] == 0) { 13 ans = Math.max(ans, i - lastPos); 14 lastPos = i; 15 } 16 } 17 return ans - 1; 18 } 19 }