Array
Description
Given a binary array nums
, return the maximum number of consecutive 1
's in the array .
Example 1:
Input: nums = [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.
Example 2:
Input: nums = [1,0,1,1,0,1]
Output: 2
Constraints:
1 <= nums.length <= 105
nums[i]
is either 0
or 1
.
Solutions
Solution 1
Python3 Java C++ Go TypeScript Rust JavaScript PHP
class Solution :
def findMaxConsecutiveOnes ( self , nums : List [ int ]) -> int :
cnt = ans = 0
for v in nums :
if v == 1 :
cnt += 1
else :
ans = max ( ans , cnt )
cnt = 0
return max ( ans , cnt )
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Solution {
public int findMaxConsecutiveOnes ( int [] nums ) {
int cnt = 0 , ans = 0 ;
for ( int v : nums ) {
if ( v == 1 ) {
++ cnt ;
} else {
ans = Math . max ( ans , cnt );
cnt = 0 ;
}
}
return Math . max ( cnt , ans );
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class Solution {
public :
int findMaxConsecutiveOnes ( vector < int >& nums ) {
int cnt = 0 , ans = 0 ;
for ( int v : nums ) {
if ( v == 1 ) {
++ cnt ;
} else {
ans = max ( ans , cnt );
cnt = 0 ;
}
}
return max ( ans , cnt );
}
};
1
2
3
4
5
6
7
8
9
10
11
12 func findMaxConsecutiveOnes ( nums [] int ) int {
ans , cnt := 0 , 0
for _ , v := range nums {
if v == 1 {
cnt ++
} else {
ans = max ( ans , cnt )
cnt = 0
}
}
return max ( ans , cnt )
}
1
2
3
4
5
6
7
8
9
10
11
12
13 function findMaxConsecutiveOnes ( nums : number []) : number {
let res = 0 ;
let count = 0 ;
for ( const num of nums ) {
if ( num === 0 ) {
res = Math . max ( res , count );
count = 0 ;
} else {
count ++ ;
}
}
return Math . max ( res , count );
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 impl Solution {
pub fn find_max_consecutive_ones ( nums : Vec < i32 > ) -> i32 {
let mut res = 0 ;
let mut count = 0 ;
for num in nums {
if num == 0 {
res = res . max ( count );
count = 0 ;
} else {
count += 1 ;
}
}
res . max ( count )
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 /**
* @param {number[]} nums
* @return {number}
*/
var findMaxConsecutiveOnes = function ( nums ) {
let res = 0 ,
t = 0 ;
for ( let num of nums ) {
if ( num == 1 ) {
++ t ;
} else {
res = Math . max ( res , t );
t = 0 ;
}
}
return Math . max ( res , t );
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class Solution {
/**
* @param Integer[] $nums
* @return Integer
*/
function findMaxConsecutiveOnes($nums) {
$tmp = $max = 0;
for ($i = 0; $i < count($nums); $i++) {
if ($nums[$i] == 1) {
$tmp++;
} else {
$max = max($tmp, $max);
$tmp = 0;
}
}
return max($tmp, $max);
}
}