zoukankan      html  css  js  c++  java
  • [Array]485. Max Consecutive Ones

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

    Example 1:

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

    Note:

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

    思路:找出数组中连续为1的个数最大值,遇到为0的值,遍历的i重置为0

    优秀代码:

    int findmax(vector<int>& nums){
    int m = 0, MAX= 0for(auto n : nums){
    if(n == 0){
    MAX = max(MAX, m);
    m = 0;
    }
    else
    m++;
    }
    return max(MAx, m);
    }

    本人代码:(不简洁)

    int findmax(vector<int>& nums){
    int m = 0; max = 0;
    for(size_t i = 0; i < nums.size(); i++){
    if(nums[i] == 1)
    m++;
    if((i < nums.size() - 1 && nums[i+1] == 0) || i == nums.size() - 1){//当没有遍历到数组末尾,下一个为0,或者已经到了末尾,没有下一个
    if(m > max)
    max = m;
    m = 0;
    }
    }
    }
  • 相关阅读:
    图像功率结合
    三星(多星)模型
    双星模型
    卫星变轨问题
    桌面木块弹簧
    球——绳模型、球——杆模型
    汽车拐弯问题
    圆锥摆模型
    省队集训日记
    NOI前比赛经验总结
  • 原文地址:https://www.cnblogs.com/qinguoyi/p/7278199.html
Copyright © 2011-2022 走看看