485. 最大连续 1 的个数
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.
示例 2:输入:nums = [1,0,1,1,0,1]
输出:2
暴力循环
代码
时间复杂度 O(n) n 为数组长度, 空间复杂度为 O(1)。
滑动窗口
- 设定连个指针first和second.为了确定什么时候开始计数,需要定义一个标志位flag;
- 先保持first不变,移动second,当遇到第一个1的时候,将second的下标赋值给first,并将标志位设置为1,即fisrt=second,flag= 1;
- 当Second遇到0并且flag = 1 的时候,flag=1是为了保证是在元素为1的滑动窗口中。此时,计算窗口中元素1的个数,然后将flag = 0;
- 当遍历完元素的时候,为了避免最后一个元素没有被处理,因此在循环结束是需要在计算下元素的个数。
代码
时间复杂度 O(n) n 为数组长度, 空间复杂度为 O(1)。
项目地址:
https://gitee.com/codingce/codingce-leetcodehttps:///xzMhehe/codingce-leetcode