算法题(6)

简介: 算法题(6)

题目

给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2
地址:https://leetcode.cn/problems/max-consecutive-ones/description/

解题

var findMaxConsecutiveOnes = function(nums) {
   
 let preMax =0;
 let currentMax = nums[0]===1?1:0;
 for(let i=1;i<nums.length;i++){
   
    if(nums[i]===1){
   
        currentMax++;
    }else if(nums[i]===0 && nums[i-1]===1){
   
        if(preMax <currentMax){
   
            preMax =currentMax
        }
        currentMax =0;
    }
 }
 return preMax>currentMax?preMax:currentMax
};
AI 代码解读
目录
打赏
0
7
7
0
88
分享
相关文章
|
6月前
|
算法题(7)
算法题(7)
23 3
Manacher(马拉车)算法详解
该文章详细解释了Manacher算法,这是一种高效找出给定字符串最长回文子串的算法,通过在字符串中插入特殊字符构建新的字符串,并利用中心扩展策略来找出最长回文序列,时间复杂度为O(N),空间复杂度为O(N)。
算法修炼之练气篇——练气十一层
每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的,练完这200多道题就考了今年第十四届的B组蓝桥杯C/C++获得了省一,后面还会更新“算法修炼之筑基篇”里面包括了省赛到国赛这一个月训练的刷奖计划,大概有40道左右,感兴趣的话可以关注一下命运之光)
136 0