周二
题目描述:
给定一个二进制数组, 计算其中最大连续1的个数。
示例:
输入: [1,1,0,1,1,1]
输出: 3
设计思路:
该问题可以使用一次遍历的方法来解决,具体实现如下:
- 遍历数组,用一个变量 count 来记录当前连续的 1 的个数,用一个变量 maxCount 来记录最大的连续 1 的个数。
- 如果当前元素为 1,则将 count 加一,否则重置 count 为 0。
- 每次更新 count 后,都需要更新 maxCount 的值。
程序流程图:
开始
1. 初始化 count 和 maxCount 均为 0
2. 遍历数组
3. 如果当前元素为 1,则将 count 加一,否则重置 count 为 0
4. 每次更新 count 后,更新 maxCount 的值
5. 返回 maxCount
结束
代码实现:
#include <iostream>
#include <vector>
using namespace std;
int findMaxConsecutiveOnes(vector<int>& nums) {
int n = nums.size(), count = 0, maxCount = 0;
for (int i = 0; i < n; ++i) {
if (nums[i] == 1) {
++count;
} else {
count = 0;
}
maxCount = max(maxCount, count);
}
return maxCount;
}
int main() {
vector<int> nums = {1, 1, 0, 1, 1, 1};
int result = findMaxConsecutiveOnes(nums);
cout << result << endl;
return 0;
}

浙公网安备 33010602011771号