這題最關鍵的是處理最開始連續1和最後連續1的方式,想到list通常在最前面加個node的處理方式,在最前面和最後面加0便可以很好地處理了node
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 }