周二

题目描述:

给定一个二进制数组, 计算其中最大连续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;
}
posted @ 2023-05-23 16:27  菜鸟de博客  阅读(36)  评论(0)    收藏  举报