# 485-最大连续 1 的个数
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/max-consecutive-ones
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
# 一、题目描述
给定一个二进制数组 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.
# 二、解法
遍历 nums
- 为 1 的时候就 thisCount++
- 为 0 的时候 thisCount 置为 0,重新累加。
代码实现:
class Solution {
public:
int findMaxConsecutiveOnes(vector<int>& nums) {
if (nums.size() == 1) {
if(nums[0] == 1) {
return 1;
}else {
return 0;
}
}
int maxCount = 0;
int thisCount = 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] == 1) {
thisCount++;
if (maxCount < thisCount) {
maxCount = thisCount;
}
}
else if (nums[i] == 0) {
thisCount = 0;
}
}
return maxCount;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27