comments | difficulty | edit_url | tags | |
---|---|---|---|---|
true |
简单 |
|
给定一个二进制数组 nums
, 计算其中最大连续 1
的个数。
示例 1:
输入:nums = [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1] 输出:2
提示:
1 <= nums.length <= 105
nums[i]
不是0
就是1
.
遍历数组,记录当前连续 cnt
,以及最大连续 ans
。如果当前元素为 cnt++
,否则更新 ans
,并且 cnt=0
。最后返回 max(ans, cnt)
即可。
时间复杂度 nums
的长度。
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)
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);
}
}
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);
}
};
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)
}
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);
}
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)
}
}
/**
* @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);
};
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);
}
}