In this Leetcode Max Consecutive Ones problem solution Given a binary array nums, return the maximum number of consecutive 1's in the array.

Leetcode Max Consecutive Ones problem solution


Problem solution in Python.

class Solution:
    def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
        max1 = 0
        count = 0
        for i in range(len(nums)):
            if nums[i] == 1:
                count += 1
            if nums[i] == 0 or i+1 == len(nums):
                max1 = max (max1, int(count))
                count = 0
        return max1

Problem solution in Java.

public int findMaxConsecutiveOnes(int[] nums) {
        if(nums.length == 0) return 0;
        int max = 0, begin = -1, i = 0;
        for(i = 0; i < nums.length; i++) {
            if(nums[i] == 1) {
                if(begin == -1) begin = i;
            } else {
                if(begin != -1) max = Math.max(max, i - begin);
                begin = -1;
            }
        }
        if(begin != -1) max = Math.max(max, i - begin);
        return max;
    }


Problem solution in C++.

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {
        int rs = 0, cur = 0;
        for(auto n:nums){
            if(!n){
                rs = max(cur, rs);
                cur = 0;
            }
            else{
                cur++;
            }
        }
        rs = max(cur, rs);
        return rs;
    }
};


Problem solution in C.

int findMaxConsecutiveOnes(int* nums, int numsSize)
{

   int i;
   int count1 = 0;
   int count2 = 0;
   int flag = 0;
   printf("*******\n");
   printf("%d\n", numsSize);
   for(i=0;i<numsSize;i++)
   {
        if(nums[i]==1)
        {
            count1++;
        }
        else
        {
            if(count1>count2)
            {
                count2 = count1;
                count1 = 0;
            }
        }
   }
   return count2>count1?count2:count1;
}