LeetCode之Max Consecutive Ones

1、题目

Given a binary array, find the maximum number of consecutive 1s in this array.

Example 1:

Input: [1,1,0,1,1,1]
Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s.
    The maximum number of consecutive 1s is 3.

Note:

  • The input array will only contain 0 and 1.
  • The length of input array is a positive integer and will not exceed 10,000

2、代码实现

public class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        if (nums == null) {
            return 0;
        }
        int zero = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == 0) {
                ++zero;
            }
        }
        if (zero == nums.length) {
            return 0;
        }
        int count = 0;
        int maxValue = 0;
        int maxLength = 0;
        for (int i = 0; i < nums.length; ++i) {
            if (nums[i] > maxValue) {
                maxValue = nums[i];
            }
        }
        for (int i = 0; i < nums.length; ++i) {
            if (nums[i] == maxValue) {
                for (int j = i; j < nums.length; ++j) {
                    if (nums[j] == maxValue) {
                        count++;
                    } else {
                        break;
                    }
                }
                if (maxLength < count) {
                    maxLength = count;
                }
                count = 0;
            }
        }
        return maxLength;
    }
}

 
 
(0)

相关推荐