Max Consecutive Ones

来源:互联网 发布:sql 累加函数 编辑:程序博客网 时间:2024/06/08 04:11

Max Consecutive Ones

  • Max Consecutive Ones
    • 题目
    • 解决


题目

leetcode题目

Given a binary array, find the maximum number of consecutive 1s in this array.

Example 1:

Input: [1,1,0,1,1,1]Output: 3Explanation: The first two digits or the last three digits are consecutive 1s.    The maximum number of consecutive 1s is 3.

Note:

  1. The input array will only contain 0 and 1.
  2. The length of input array is a positive integer and will not exceed 10,000

解决

我们需要求的是在给定数组中抽取一组连续的子数组使得里面全是1并且个数达到最大值,即需要我们求出给定数组中连续1的最大个数。

class Solution {public:    int findMaxConsecutiveOnes(vector<int>& nums) {        int num = nums.size();        int result = 0; // result记录最终结果        int temp = 0; // temp记录当前"1"的个数        for (int i = 0; i < num; i++) {            if (nums[i] == 1) {                temp++;            } else {            // 当"nums[i] = 0"时候,比较temp和result,确定哪个是最大值,同时temp清零,为下次计算"1"的个数做准备。                result = (result < temp) ? temp : result;                temp = 0;            }        }        // 若给定数组全为"1",则result此时为"0",需要再次比较result和temp        result = (result < temp) ? temp : result;        return result;    }};